打印本文 打印本文 关闭窗口 关闭窗口
ASP.NET Authentication Provider
作者:武汉SEO闵涛  文章来源:敏韬网  点击数2324  更新时间:2009/4/23 10:48:01  文章录入:mintao  责任编辑:mintao
 

显示结果

 

3.   Mode=”Passport”

 

对于这种模式下,ASP.NET引擎会使用Microsoft PassportAuthentication机制,理论上这种模式将是最OK和省力的,不过照目前看来,想在ASP.NET下实现Passport还不是一件轻松的事情,VS.NET Beta 2的类库并没有完全实现Passport 2.1的功能(PassportIdentity. Microsoft目前唯一展示的是在MSDN上的ColdStorage例子,实现上基本基于Passport 1.4而且像使用DirectX 一样,还需要专门的一个DLL。有资料显示VS.NET RC2之后的类库已经实现了原来未实现的功能,但就目前看来缺少这方面的资料,所以把这方面的信息留给MicrosoftPassport 3.0吧,以后的时间我们会再来考察,对于Passport我深有信心,而且只要在Microsoft平台,我们都可能无法逃避面对Passport.

有关ColdStoragePassport的信息,可以参见下面的文章:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dncold/html/storageauthentication.asp

 

4.   Mode=”Forms”

 

这种模式下,我想每个开放人员将获得最大的灵活性和控制,而且从现在看来,这是最实用和可行的一种方式。先看一个比较简单的例子:

1.     Config.Web 文件中进行下面的设置:

<authentication mode="Forms">

<forms name=".ASPXUSERDEMO" loginUrl="login.aspx" />

</authentication>

loginUrl=”string” 表明未通过Authentication的请求将被定向到的页面,你可以自行设置。

2.     然后点击或在login.aspx 文件的Login按钮的Click的事件处理程序中写入下面的代码:

void Login_Click(Object sender, EventArgs E) {

 

// authenticate user: this samples accepts only one user with

// a name of new2001@msn.com and a password of ''''ccBoy''''

 

if ((UserEmail.Value == "new2001@msn.com") && (UserPass.Value == "ccBoy")) {

FormsAuthentication.RedirectFromLoginPage(UserEmail.Value, PersistCookie.Checked);

}

else {

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

}

}

 

这里我们使用的硬编码,目前只允许new2001@msn.com ccBoy作为登录的用户。测试时我们并不直接访问Login.aspx而是请求default.aspx这个页面,ASP.NET使用其Authentication机制,将重新定向到Login.aspx,当用户输入的信息被接受则返回最初请求的default.aspx.方式上由于我们使用dotNETWebUI控件,更加对象化了,当判断通过FormsAuthentication 执行RedirectFromLoginPage 方法,这个函数发出Cookie,并把用户重新定向到最初请求的资源。这种方式下ASP.NET AP做了一半的工作,事实上它是被动的完成RedirectFromLoginPage

结果如图:

 

Login

 

下面我们修改config.web文件,使得Authentication config.web中获得信息和发生

1.   先设置config.web 文件

<authentication mode="Forms">

<forms name=".ASPXUSERDEMO" loginUrl="login.aspx" >

    <credentials passwordFormat="Clear">

         <user name="ccBoy@msn.com" password="ccboy"/>

     </credentials>

</forms>

</authentication>

<credentials></credentials>中指定访问系统资源的用户名和密码,并且可以对加密的密码进行定制和管理(建议实际应用中不要将用户名和密码放在这里面)

Passwordformat可以是“Clear”、“SHA1”、“MD5”等值。

Clear:用纯文本保存密码。用户和密码不需要进一步的转换可以直接使用和用户进行比较

上一页  [1] [2] [3] [4]  下一页

打印本文 打印本文 关闭窗口 关闭窗口