您好,登錄后才能下訂單哦!
最近項目要調(diào)用其他人的登錄API程序,其中涉及到了身份驗證(之前沒有用過ASP.NET的身份驗證),開始調(diào)試時身份驗證都是有值的,調(diào)試時
(PC-5\Administrator為本地計算機名字)
但是到了真正發(fā)布到IIS時,身份驗證的值卻沒有了。后來查看了一些文章,才發(fā)現(xiàn)這是和ASP.NET的身份驗證有關。
微軟官方對ASP.NET的身份驗證分為以下幾種,
<authentication
mode="[Windows|Forms|Passport|None]">
其中屬性描述為:
屬性 |
說明 |
||||||||||
mode |
必選的屬性。 指定應用程序的默認身份驗證模式。此屬性可以為下列值之一。
默認值為 Windows。 |
如果是使用身份驗證為Windows,由于官方說將結(jié)合IIS進行身份驗證,那么就要額外配置發(fā)布后的IIS,因為IIS默認為匿名用戶登錄,并不采用身份驗證。所以如果是本地進行調(diào)試的話,身份驗證就是使用本機的Windows身份,而發(fā)布到IIS的就是使用IIS的身份驗證,但是IIS如果未配置身份認證,默認采用匿名登錄,那么身份認證就不會起作用了。
測試代碼:
if (HttpContext.Current.User.Identity.IsAuthenticated)
Label1.Text ="已驗證,現(xiàn)在身份驗證名字:" +HttpContext.Current.User.Identity.Name;
else
Label1.Text="未驗證,現(xiàn)在身份驗證名字:" + HttpContext.Current.User.Identity.Name;
發(fā)布到IIS服務器沒有配置身份驗證,出現(xiàn)的結(jié)果:
發(fā)布到IIS服務器并配置身份驗證,會出現(xiàn)windows登錄窗口,輸入windows用戶,
出現(xiàn)的結(jié)果是
通過上面的測試,基本上可以明白微軟對ASP.NET的身份驗證的Windows屬性的使用。但是對于一般網(wǎng)站而言,并不希望為每個用戶分配windows賬戶,所以這種驗證僅適合少量安全用戶的訪問,并不適合大量的用戶訪問。
參考文獻:http://www.cnblogs.com/fish-li/archive/2012/05/07/2486840.html#_label5
http://msdn.microsoft.com/zh-cn/library/ff647076.aspx
針對上述情況,微軟提出了ASP.NET的身份驗證屬性Forms屬性,主要針對表單驗證。簡單說,Forms身份認證就是為每個登錄到網(wǎng)站的用戶產(chǎn)生一個認證標識(一般為Cookie)。由于這種認證集成到網(wǎng)頁表單的提交,對用戶很方便。
具體的認證使用方法請參看:
http://www.cnblogs.com/xugang/archive/2010/12/08/1900135.html
http://www.xoc.net/works/tips/forms-authentication.asp
在這里還想說的是,之前由于我做的程序中使用了User.Identity.IsAuthenticated屬性進行驗證,在調(diào)試的時候還是沒有產(chǎn)生身份驗證。追查原因才發(fā)現(xiàn)原來在進行表單身份驗證的時候是需要這個方法來產(chǎn)生表單驗證信息的,即注冊表單身份。
FormsAuthentication.SetAuthCookie(name, true);
沒有這個方法的話,就無法產(chǎn)生表單身份,而且根據(jù)文章
http://www.cftea.com/c/2011/04/UQ1T0SIOTD34ZJOG.asp
說注冊表單身份后要進行跳轉(zhuǎn)后才能生效。
而對于解決User.Identity.IsAuthenticated==false 或User.Identity.Name==string.empty的問題,可以參考文章
http://www.cnblogs.com/godwar/archive/2008/07/21/1247890.html
最后推薦各位遇到ASP.NET身份驗證的問題的朋友,可以先看看這幾篇文章,會很有收獲。
http://www.cnblogs.com/Gavinzhao/archive/2009/10/29/1591795.html
http://www.cnblogs.com/Gavinzhao/archive/2009/10/29/1591796.html
http://www.cnblogs.com/Gavinzhao/archive/2009/10/29/1591797.html
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。