亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > .NET > 正文

Forms身份認證在IE11下無法保存Cookie的問題

2024-07-10 13:27:35
字體:
來源:轉載
供稿:網友
ASP.NET中使用Forms身份認證常見的做法如下:

1. 網站根目錄下的Web.config添加authentication節點

復制代碼 代碼如下:


<authentication mode="Forms">
<forms loginUrl="manager/Login.aspx" defaultUrl="manager/default.aspx" protection="All" timeout="60" />
</authentication>


2. 在manager子目錄下添加Web.config文件并加入下面的內容:

復制代碼 代碼如下:


<?xml version="1.0"?>
<configuration>
<system.web>
<authorization>
<allow roles="Admin" />
<deny users="*" />
</authorization>
</system.web>
</configuration>


這樣,用戶在沒有Forms認證的情況下訪問manager子目錄下的任何頁面均會自動跳轉到manager/Login.aspx頁面。如果認證成功,則會默認回到manager/default.aspx頁面。認證有效期為60分鐘。

3. 添加認證代碼。登錄按鈕中添加下面的代碼:

復制代碼 代碼如下:


if (!snCheckCode.CheckSN(txt_ValidateCode.Text))
{
snCheckCode.Create();
Utility.ShowMessage("校驗碼錯誤!");
return;
}

string strUserName = txt_Username.Text.Trim();
string md5Pwd = Helper.MD5ForPHP(Helper.MD5ForPHP(txt_Password.Text));
lc_admin admin = null;
bool logined = false;

using (var context = new dbEntities())
{
admin = context.tb_admin.Where(n => n.username == strUserName).FirstOrDefault();

if (admin != null)
{
if (admin.checkadmin != "true")
{
snCheckCode.Create();
Utility.ShowMessage("抱歉,該賬號被禁止登錄!");
return;
}

if (admin.password == md5Pwd)
{
// Update Admin Info
admin.loginip = Request.UserHostAddress.ToString();
admin.logintime = CndingUtility.DateTimeToUnixTimeStamp(DateTime.Now);
context.SaveChanges();

logined = true;
}
}
}

if (logined)
{
// Login
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(
1,
admin.id.ToString(),
DateTime.Now,
DateTime.Now.AddMinutes(60),
false,
"Admin",
FormsAuthentication.FormsCookiePath
);
string hashTicket = FormsAuthentication.Encrypt(ticket);
HttpCookie userCookie = new HttpCookie(FormsAuthentication.FormsCookieName, hashTicket);
HttpContext.Current.Response.Cookies.Add(userCookie);

if (Request["ReturnUrl"] != null)
{
Response.Redirect(HttpUtility.HtmlDecode(Request["ReturnUrl"]));
}
else
{
Response.Redirect("/manager/default.aspx");
}
}
else
{
snCheckCode.Create();
CndingUtility.ShowMessage("用戶名或密碼不正確!");
}


MD5加密代碼:

復制代碼 代碼如下:


public static string MD5ForPHP(string stringToHash)
{
var md5 = new System.Security.Cryptography.MD5CryptoServiceProvider();
byte[] emailBytes = Encoding.UTF8.GetBytes(stringToHash.ToLower());
byte[] hashedEmailBytes = md5.ComputeHash(emailBytes);
StringBuilder sb = new StringBuilder();
foreach (var b in hashedEmailBytes)
{
sb.Append(b.ToString("x2").ToLower());
}
return sb.ToString();
}


認證成功后默認會將用戶登錄信息以Cookie的形式存放到客戶端,有效期為60分鐘。UserData被設置為用戶的角色,在判斷用戶是否登錄時會用到。如下面的代碼:

復制代碼 代碼如下:


if (HttpContext.Current.User.Identity.IsAuthenticated)
{
int adminId = -1;
FormsIdentity identity = (FormsIdentity)HttpContext.Current.User.Identity;
FormsAuthenticationTicket ticket = identity.Ticket;
string userData = ticket.UserData;
if (userData == "Admin")
{
// To do something
}
}


上述代碼在Visual Studio中運行一切正常!但是將網站發布到服務器的IIS (可能會是較低版本的IIS,如IIS 6)后,發現登錄功能異常。輸入用戶名和密碼后點擊登錄按鈕,頁面postback但并不能正確跳轉,嘗試手動訪問受保護的頁面會被自動跳轉回登錄頁面。更奇怪的是該問題只出現在IE11瀏覽器上,嘗試用Firefox或Chrome訪問登錄功能運行正常。初步懷疑是IIS設置的問題,可是IIS 6上并沒有與Cookie相關的設置,好像記得IIS 7上倒是有這個設置。但因為只有IE 11存在該問題,所以可以否定代碼本身存在任何問題。

此外,還嘗試了降低IE 11的安全級別,重新安裝服務器上的.net framework以及下載最新的補丁等等,均不能解決問題。后來發現其實只需要簡單修改Web.config中authentication節點的設置就可以了,給forms添加cookieless="UseCookies"屬性即可。

復制代碼 代碼如下:


<authentication mode="Forms">
<forms cookieless="UseCookies" loginUrl="manager/Login.aspx" defaultUrl="manager/default.aspx" protection="All" timeout="60" />
</authentication>


用以明確告訴服務器使用Cookie來保存用戶驗證信息。問題解決!
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲精品白浆高清久久久久久| 97色在线视频| 韩国19禁主播vip福利视频| 亚洲男女自偷自拍图片另类| 在线一区二区日韩| 91av在线国产| 欧美成人性色生活仑片| 亚洲第一中文字幕| 久久精品视频中文字幕| 成人免费午夜电影| 91亚洲精品一区| 97超碰蝌蚪网人人做人人爽| 亚洲iv一区二区三区| 色噜噜久久综合伊人一本| 国产免费亚洲高清| 亚洲色图国产精品| 亚洲国产精品悠悠久久琪琪| 久久97精品久久久久久久不卡| 亚洲欧美国产日韩天堂区| 精品国产欧美一区二区三区成人| 日本乱人伦a精品| 国产免费一区二区三区香蕉精| 国产成人精品免费视频| 欧美精品免费播放| 97视频在线观看网址| 精品在线小视频| 91成品人片a无限观看| 美女啪啪无遮挡免费久久网站| 亚洲高清av在线| 欧美成人手机在线| 亚洲码在线观看| 97久久精品人人澡人人爽缅北| 性欧美在线看片a免费观看| 亚洲综合自拍一区| 久久人人爽人人爽人人片av高清| 黑人与娇小精品av专区| 97精品欧美一区二区三区| 亚洲女人天堂网| 欧美激情精品在线| 91精品国产自产在线观看永久| 久久精品国产2020观看福利| 欧美激情欧美激情| 97色在线视频| 日韩69视频在线观看| 国产欧美日韩中文字幕在线| 国产精品99久久久久久白浆小说| 欧美精品18videosex性欧美| 欧美日韩中文字幕| 亚洲无亚洲人成网站77777| 亚洲午夜未删减在线观看| 久久久精品在线| 欧美黑人xxxx| 日韩精品在线免费| 日本中文字幕久久看| 日韩成人在线视频| 亚洲mm色国产网站| 精品国产欧美一区二区三区成人| 最近2019中文字幕在线高清| 欧美一级bbbbb性bbbb喷潮片| 亚洲欧洲午夜一线一品| 日韩在线观看你懂的| 国产成人a亚洲精品| 成人国产精品免费视频| 日韩av大片在线| 国产精品久久综合av爱欲tv| 亚洲人成网站色ww在线| 精品亚洲永久免费精品| 国产精品亚洲精品| 日本成人激情视频| 在线成人激情黄色| 热久久美女精品天天吊色| 久久香蕉频线观| 亚洲精品综合久久中文字幕| 久久在线观看视频| 中文字幕日韩av电影| 精品动漫一区二区三区| 国产精品美女主播| 国产精品视频久| 一区二区国产精品视频| 91a在线视频| 亚洲午夜精品久久久久久久久久久久| 久久91精品国产91久久久| 国产区亚洲区欧美区| 亚洲变态欧美另类捆绑| 欧美一级淫片丝袜脚交| 精品爽片免费看久久| www国产亚洲精品久久网站| 日韩视频免费在线观看| 亚洲午夜久久久久久久| 国产精品久久久久秋霞鲁丝| 欧美日韩成人精品| 91精品国产成人| 欧美精品一二区| 中文字幕日韩av| 欧美精品九九久久| 精品中文字幕在线观看| 欧美激情日韩图片| 在线精品视频视频中文字幕| 欧美亚洲伦理www| 国产精品99导航| 久久综合伊人77777尤物| 精品性高朝久久久久久久| 欧美在线精品免播放器视频| 欧美电影免费在线观看| www.久久撸.com| 一区二区在线免费视频| 欧美日韩成人免费| 亚洲国产精品成人一区二区| 欧美成人在线免费视频| 亚洲精品在线看| 国内免费久久久久久久久久久| 久久影视电视剧免费网站| 亚洲欧美日韩一区在线| 国产精品稀缺呦系列在线| 亚洲变态欧美另类捆绑| 日韩av电影院| 久久久在线观看| 日韩av片永久免费网站| 丝袜亚洲另类欧美重口| 不用播放器成人网| 国语自产精品视频在线看一大j8| 亚洲第一精品夜夜躁人人爽| 国产免费一区二区三区在线能观看| 夜夜嗨av一区二区三区四区| 精品自在线视频| 日本久久91av| 欧美性猛交丰臀xxxxx网站| 欧美成人免费在线观看| www.xxxx欧美| 欧美午夜片在线免费观看| 91美女高潮出水| 成人a在线观看| 国产精品com| 中文字幕免费精品一区高清| 综合136福利视频在线| 国产午夜精品视频免费不卡69堂| 亚洲人成在线播放| 精品中文视频在线| 国产mv久久久| 黑人狂躁日本妞一区二区三区| 欧美高清自拍一区| 国产精品视频白浆免费视频| 午夜精品福利视频| 亚洲精品国产品国语在线| 欧美综合国产精品久久丁香| 91色在线观看| 最好看的2019的中文字幕视频| 亚洲国产精品99| 欧美又大又粗又长| 国产精品九九久久久久久久| 久久电影一区二区| 久久久噜久噜久久综合| 亚洲精品www久久久| 国产精品久久久久久久久免费看| 欧美一区第一页| 久久成人精品电影| 欧美一区二区色| 亚洲欧洲一区二区三区在线观看| 日本中文字幕不卡免费| 欧美一级电影久久| 国产亚洲精品久久久| 亚洲乱码一区av黑人高潮| 久久99久国产精品黄毛片入口| 亚洲国产精品成人一区二区|