在 ASPNET 中实现不同角色的用户使用不同登录界面的方法文档格式.docx

上传人:b****3 文档编号:17394313 上传时间:2022-12-01 格式:DOCX 页数:12 大小:17.70KB
下载 相关 举报
在 ASPNET 中实现不同角色的用户使用不同登录界面的方法文档格式.docx_第1页
第1页 / 共12页
在 ASPNET 中实现不同角色的用户使用不同登录界面的方法文档格式.docx_第2页
第2页 / 共12页
在 ASPNET 中实现不同角色的用户使用不同登录界面的方法文档格式.docx_第3页
第3页 / 共12页
在 ASPNET 中实现不同角色的用户使用不同登录界面的方法文档格式.docx_第4页
第4页 / 共12页
在 ASPNET 中实现不同角色的用户使用不同登录界面的方法文档格式.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

在 ASPNET 中实现不同角色的用户使用不同登录界面的方法文档格式.docx

《在 ASPNET 中实现不同角色的用户使用不同登录界面的方法文档格式.docx》由会员分享,可在线阅读,更多相关《在 ASPNET 中实现不同角色的用户使用不同登录界面的方法文档格式.docx(12页珍藏版)》请在冰豆网上搜索。

在 ASPNET 中实现不同角色的用户使用不同登录界面的方法文档格式.docx

protectedvoidPage_Load(objectsender,EventArgse)

{

StringReturnUrl=Request.QueryString["

ReturnUrl"

];

if(ReturnUrl==null||ReturnUrl.Equals(String.Empty))

//默认情况下,按普通用户进行登录

Response.Redirect("

~/UserLogin.aspx"

);

}

else

if(ReturnUrl.ToLower().Contains("

/admin/"

))

{

~/AdminLogin.aspx?

ReturnUrl="

+Server.UrlEncode(ReturnUrl));

}

else

~/UserLogin.aspx?

protectedvoidPage_Load(objectsender,EventArgse)

{

if(ReturnUrl==null||ReturnUrl.Equals(String.Empty))

//默认情况下,按普通用户进行登录

}

else

))

{

}

else

在这个文件的代码中,如果ReturnUrl中含有"

,就重定向到AdminLogin.aspx登录界面;

否则,就重定向到UserLogin.aspx登录界面。

UserLogin.aspx这个文件的内容如下:

&

lt;

%@PageLanguage="

C#"

%&

gt;

!

DOCTYPEhtmlPUBLIC"

-//W3C//DTDXHTML1.0Transitional//EN"

"

http:

//www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"

mce:

scriptrunat="

server"

--

protectedvoidButton1_Click(objectsender,EventArgse)

//密码验证过程在此省略,假如用户名是mxh,密码是mengxianhui

StringUserName="

mxh"

;

FormsAuthenticationTicketticket=newFormsAuthenticationTicket(2,//票证的版本号

UserName,//与身分验证票关联的用户名

DateTime.Now,//票证发出时的本地日期和时间

DateTime.Now.AddHours

(1),//票证过期的本地日期和时间

true,//如果票证存储在持久性cookie中(跨浏览器会话保存)则为true否则为false如果票证储存在URL中,将忽略此值

reader"

//储存在票证中持定的用户信息,本页面供reader登录使用

FormsAuthentication.FormsCookiePath//票证储存在cookie中的路径

);

//如果forms元素的protection属性设置为All或Encryption,则窗体身份验证使用Encrypt方法对窗体身份验证票进行加密和签名。

stringencTicket=FormsAuthentication.Encrypt(ticket);

HttpCookiecookie=newHttpCookie(FormsAuthentication.FormsCookieName,encTicket);

Response.Cookies.Add(cookie);

Response.Redirect(FormsAuthentication.GetRedirectUrl(UserName,true));

//--&

/mce:

script&

htmlxmlns="

//www.w3.org/1999/xhtml"

headrunat="

&

title&

孟宪会之多用户登录测试页面&

/title&

/head&

body&

formid="

form1"

runat="

普通用户登录界面省略&

br/&

asp:

ButtonID="

Button1"

OnClick="

Button1_Click"

Text="

普通用户登录"

/&

/form&

/body&

/html&

--

protectedvoidButton1_Click(objectsender,EventArgse)

//密码验证过程在此省略,假如用户名是mxh,密码是mengxianhui

FormsAuthenticationTicketticket=newFormsAuthenticationTicket(2,//票证的版本号

UserName,//与身分验证票关联的用户名

DateTime.Now,//票证发出时的本地日期和时间

DateTime.Now.AddHours

(1),//票证过期的本地日期和时间

true,//如果票证存储在持久性cookie中(跨浏览器会话保存)则为true否则为false如果票证储存在URL中,将忽略此值

//储存在票证中持定的用户信息,本页面供reader登录使用

FormsAuthentication.FormsCookiePath//票证储存在cookie中的路径

这个文件将验证信息保存后,返回最初的请求页面。

注意:

这里连接数据库验证用户名和密码的过程省略过去了。

AdminLogin.aspx这个文件的全部内容如下:

//密码验证过程在此省略,假如用户名是Admin,密码是mengxianhui

Admin"

//与身分验证票关联的用户名

admin|manager|editor"

//储存在票证中持定的用户信息,本页面供admin,manager,editor登录使用

Response.Redirect(FormsAuthentication.GetRedirectUrl("

true));

管理员登录界面,省略

登录"

//密码验证过程在此省略,假如用户名是Admin,密码是mengxianhui

//与身分验证票关联的用户名

//储存在票证中持定的用户信息,本页面供admin,manager,editor登录使用

管理员登录界面,省略

3,在Global的AuthenticateRequest事件(一定要注意:

不是AuthorizeRequest事件)里将角色信息附加到当前用户的上下文中。

protectedvoidApplication_AuthenticateRequest(objectsender,EventArgse)

stringcookieName=FormsAuthentication.FormsCookieName;

HttpCookieauthCookie=Context.Request.Cookies[cookieName];

if(null==authCookie)

return;

FormsAuthenticationTicketauthTicket=null;

try

authTicket=FormsAuthentication.Decrypt(authCookie.Value);

catch(Exceptionex)

if(null==authTicket)

FormsIdentityid=newFormsIdentity(authTicket);

String[]roles=id.Ticket.UserData.Split('

|'

//读出在登录时设置的角色列表。

System.Security.Principal.GenericPrincipalprincipal=newSystem.Security.Principal.GenericPrincipal(id,roles);

Context.User=principal;

//将验证信息附加到当前用户上下文。

protectedvoidApplication_AuthenticateRequest(objectsender,EventArgse)

if(null==authCookie)

try

catch(Exceptionex)

if(null==authTicket)

4,在web.config文件中,允许登录文件的匿名访问,以便在未登录的情况下显示登录界面,注意:

如果包含图片、css等文件,也需要设置这些资源允许匿名访问。

configuration&

locationpath="

AdminLogin.aspx"

system.web&

authorization&

allowusers="

?

"

/&

/authorization&

/system.web&

/location&

UserLogin.aspx"

authenticationmode="

formsloginUrl="

Login.aspx"

path="

/"

protection="

Encryption"

/forms&

/authentication&

denyusers="

*"

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1