2008-11-15 58 views
3

我有一個股票標準的ASP.NET網站。任何人都可以閱讀/查看任何頁面(管理部分除外),但是當有人想要貢獻時,他們需要登錄。就像大多數貢獻網站一樣。所以,如果我有我自己的登錄控制或用戶名/密碼/提交輸入字段,爲什麼我想要打開窗體auth而不是隻是沒有?什麼形式認證給我,其中有我自己的代碼,檢查我的數據庫的用戶/通行證和我自己的兩個輸入字段+提交按鈕,完成這項工作嗎? (注:我真的不喜歡在數據庫中創建所有這些表和usp的asp.net會員資格的東西,所以請不要建議我使用它)。ASP.NET使用Forms身份驗證登錄網站vs無

一樣,我的代碼,當我驗證用戶(用我自己的數據庫的代碼),我手動創建我自己的身份,等

是這一切的需要?這個的主要目的是什麼?

乾杯!

回答

2

您可以授權您的用戶如何您想要的。 FormAuthentication用於設置會話身份和身份驗證Cookie,允許用戶保持登錄狀態,直到他們註銷或會話過期。您不需要使用成員資格提供程序來使用FormsAuthentication。這聽起來像你只是複製這個功能。

...do your authentication against your DB or Active Directory 

if (Request.QueryString["ReturnUrl"] != null) 
{ 
    FormsAuthentication.RedirectFromLoginPage(userName.Text, false); 
} 
else 
{ 
    FormsAuthentication.SetAuthCookie(userName.Text, false); 
} 

然後,你需要設置在web.config

<system.web> 
    <authentication mode="Forms"> 
    <forms loginUrl="Login.aspx" 
      protection="All" 
      timeout="30" 
      name="my-auth-cookie" 
      path="/" 
      requireSSL="false" 
      slidingExpiration="true" 
      defaultUrl="default.aspx" /> 
    </authentication> 
</system.web> 

你得到做自己的授權和沒有落實餅乾基礎設施的所有優點,使用它。請注意,由於您的網站只需在編輯時授權,您需要設置權限,以便每個人都可以閱讀所有頁面並實施自己的邏輯,以便在編輯時將其重定向到登錄頁面。

更多信息here

+0

所以通過使用窗體auth,asp.net管道處理讀取cookie等,然後爲當前線程設置IDENTITY實例?其次,我也不能使用RedirectFromLoginPage,因爲我在做AJAX登錄:)(muhaha!)。最後,對於該網站,IIS7是否需要具有窗體身份驗證開啓? – 2008-11-15 06:03:18

0

我也開始使用ASP.NET Web項目提供的默認表單身份驗證。不過,我也對該股票數據庫中表格的過度構建特徵感到非常沮喪。

在我的工作經驗中,我使用了自定義的身份驗證,並在會話變量中攜帶了登錄用戶配置文件(自創)。

asp.net成員資格可能很難移植到一些共享主機提供商也。

相關問題