![](/img/trans.png)
[英]How to use Razor syntax in ASP.NET Web Application (not MVC)
[英]SimpleMembership with ASP.Net Web application (NO MVC, NO RAZOR. Just standard .net web project)
我在項目中無法實現SimpleMembership。 基本上,我無法找到有關限制訪問頁面的任何信息。 到目前為止,這是我所做的:
<appSettings> <add key="loginUrl" value="default.aspx" /> </appSettings>
[WebMethod, ScriptMethod] public static bool Login(string userName, string password) { return SecurityManager.Instance.Login(userName: userName, password: password); }
success: function (data, textStatus, jqXHR) { if (data.d) { window.location.href = "home.aspx"; } else { $("#invalidCredentialsBox").css("visibility", "visible"); } },
問題是,如果我嘗試直接(從瀏覽器)訪問home.aspx,則會自動加載。 因此,如何使SimpleMembership限制對home.aspx的訪問,直到用戶成功登錄為止?
我必須要做的是,雖然不知道這是否是正確的解決方案,但它是在app_code文件夾中創建基類。 該類繼承自System.Web.UI.Page ,然后更改了home.aspx以從該基類繼承。 在基類的構造函數中,我正在檢查WebSecurity.IsAuthenticated屬性,如果它為false,則執行Response.Redirect到我的error.aspx頁面:
namespace MyProject { public class BasePage : System.Web.UI.Page { public BasePage() { if (!SecurityManager.Instance.IsAuthenticated()) { HttpContext.Current.Response.Redirect("error.aspx"); } } } }
這樣,它可以工作,但是我不認為這是實現它的正確方法。 我發現的所有示例都使用MVC,但我不是,實際上我對MVC幾乎一無所知。 可以請別人給我一些想法或向我指出在.net Web項目中使用SimpleMembership的相同文檔/示例嗎?
另外,我可以添加到web.config的appSettings部分的SimpleMembership還有哪些其他有效屬性? 而且,如何設置web.config的身份驗證部分以與SimpleMembership一起使用(我在MVC 4模板中看到,即使它使用SimpleMembership,它仍會在web.config中設置表單身份驗證部分)
謝謝。
不要將授權與身份驗證混淆。
授權決定誰有權訪問什么。
您可以如下設置
<authorization>
<allow users="Kim"/>
<allow roles="Admins"/>
<deny users="John"/>
<deny users="?"/>
</authorization>
參考: Asp.net授權
成員資格提供者負責身份驗證 。 它的責任只是確認用戶就是他聲稱的身份。
如果您網站的一部分需要不同的授權規則,例如登錄頁面,默認頁面或每個人都可以訪問的公用文件夾,則可以使用location元素為其創建一個部分。
即使站點的其余部分受到限制,這也將允許所有用戶訪問Logon.aspx。
<location path="Logon.aspx">
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</location>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.