Froms认证
[csharp]
if (this.Txt_UserName.Text == "Admin" && this.Txt_Password.Text == "123456")
{
var ticket = new System.Web.Security.FormsAuthenticationTicket(1, this.Txt_UserName.Text, DateTime.Now, DateTime.Now.AddDays(1), false, "USER");
var encryptedTicket = System.Web.Security.FormsAuthentication.Encrypt(ticket);
if (Request.Cookies[System.Web.Security.FormsAuthentication.FormsCookieName] != null)
Request.Cookies.Remove(System.Web.Security.FormsAuthentication.FormsCookieName);
var loginIdentify = new HttpCookie(System.Web.Security.FormsAuthentication.FormsCookieName);
loginIdentify.Expires = DateTime.Now.AddDays(1);
loginIdentify.Value = encryptedTicket;
Response.AppendCookie(loginIdentify);
if (!String.IsNullOrEmpty(Request.QueryString["ReturnUrl"]) && !Request.QueryString["ReturnUrl"].ToLower().Contains("profile"))
Response.Redirect(Server.UrlDecode(Request.QueryString["ReturnUrl"]));
else
Response.Redirect(System.Web.Security.FormsAuthentication.DefaultUrl);
}
if (this.Txt_UserName.Text == "Admin" && this.Txt_Password.Text == "123456")
{
var ticket = new System.Web.Security.FormsAuthenticationTicket(1, this.Txt_UserName.Text, DateTime.Now, DateTime.Now.AddDays(1), false, "USER");
var encryptedTicket = System.Web.Security.FormsAuthentication.Encrypt(ticket);
if (Request.Cookies[System.Web.Security.FormsAuthentication.FormsCookieName] != null)
Request.Cookies.Remove(System.Web.Security.FormsAuthentication.FormsCookieName);
var loginIdentify = new HttpCookie(System.Web.Security.FormsAuthentication.FormsCookieName);
loginIdentify.Expires = DateTime.Now.AddDays(1);
loginIdentify.Value = encryptedTicket;
Response.AppendCookie(loginIdentify);
if (!String.IsNullOrEmpty(Request.QueryString["ReturnUrl"]) && !Request.QueryString["ReturnUrl"].ToLower().Contains("profile"))
Response.Redirect(Server.UrlDecode(Request.QueryString["ReturnUrl"]));
else
Response.Redirect(System.Web.Security.FormsAuthentication.DefaultUrl);
}
//System.Web.Security.FormsAuthentication.SignOut();退出
//Page.User.Identity.Name获取用户名
// if (User.Identity.IsAuthenticated)判断是否通过认证
//web.config配置
<authentication mode="Forms">
<forms loginUrl="Login.aspx" name=".ASPXAUTH" timeout="43200" defaultUrl="WebForm1.aspx" protection="All" path="/" requireSSL="false" slidingExpiration="true" enableCrossAppRedirects="false" />
</authentication>
<anonymousIdentification enabled="true" />
<authorization>
<deny users="?"></deny>
</authorization>
在一个ASP.NET网站中,有些页面会允许所有用户访问,包括一些未登录用户,但有些页面则必须是已登录用户才能访问,还有一些页面可能会要求特定的用户或者用户组的成员才能访问。这类页面因此也可称为【受限页面】,它们一般代表着比较重要的页面,包含一些重要的操作或功能。
为了保护受限制的页面的访问,ASP.NET提供了一种简单的方式:可以在web.config中指定受限资源允许哪些用户或者用户组(角色)的访问,也可以设置为禁止访问。
比如,网站有一个页面:MyInfo.aspx,它要求访问这个页面的访问者必须是一个已登录用户,那么可以在web.config中这样配置:
<location path="MyInfo.aspx">
<system.web>
<authorization>
<deny users="?"/>
</authorization>
</system.web>
</location>
为了方便,我可能会将一些管理相关的多个页面放在Admin目录中,显然这些页面只允许Admin用户组的成员才可以访问。 对于这种情况,我们可以直接针对一个目录设置访问规则:
<location path="Admin">
<system.web>
<authorization>
<allow roles="Admin"/>
<deny users="*"/>
</authorization>
</system.web>
</location>
这样就不必一个一个页
补充:软件开发 , C# ,