当前位置导航:炫浪网>>网络学院>>网页制作>>ASP.NET教程

ASP.net Application中使用域用户登录

  现在做的一个程序中要求ASP.net 程序可以使用已经存在的域用户来登录(而且为了与其它程序界面一致一定要使用 Forms 登录),查找了一些相关的资料发现还是可以实现的。

  主要还是依靠 advapi32.dll 中的 LogonUser API 函数。

  using System.Web.Security;

  using System.Runtime.InteropServices;

  [DllImport("advapi32.dll", CharSet=CharSet.Auto)]

  public static extern int LogonUser(String lpszUserName,

  String lpszDomain,

  String lpszPassword,

  int dwLogonType,

  int dwLogonProvider,

  ref IntPtr phToken);

  public const int LOGON32_LOGON_INTERACTIVE = 2;

  public const int LOGON32_PROVIDER_DEFAULT = 0;

  void Login_Click(Object sender, EventArgs E)

  {

  IntPtr token = IntPtr.Zero;

  if(LogonUser(UserName.Value,

  UserDomain.Value,

  UserPass.Value,

  LOGON32_LOGON_INTERACTIVE,

  LOGON32_PROVIDER_DEFAULT,

  ref token) != 0)

  {

  FormsAuthentication.RedirectFromLoginPage(UserName.Value,

  PersistCookie.Checked);

  }

  else

  {

  lblResults.Text = "Invalid Credentials: Please try again";

  }

  }

  其它方面的使用与普通的forms 程序没有太大的区别,也许还有更好的方法。

  附注:技术的连贯性体现

相关内容
赞助商链接