SecuredWebForm.aspx、UnSecuredWebForm.aspx、LoginForm.aspx という 3 つの Web フォームを持つ asp.net Web アプリケーションがあります。ユーザーが LoginForm.aspx を使用してログインした場合にのみ、SecuredWebForm.aspx にアクセスできるようにしたい。UnSecuredWebForm.aspx の場合、ログインする必要はありません。前もって感謝します。
3 に答える
ガイドは次のとおりです。 http://www.codeproject.com/Articles/13872/Form-authentication-and-authorization-in-ASP-NET
それを行う別のガイド:
この目的には、Membership クラスを使用するとよいでしょう。特定の要件がない場合。
WebApplication を使用して NewProject を作成した場合、VisualStudio はweb.config
次のようなすべての懸念事項の構成をセットアップしている可能性があります。
要素web.config
を追加して編集します。<authorization...>...</authorization>
認可コンテンツにアクセスすることで匿名利用を防止します。
<configuration>
<connectionStrings>
<add name="ApplicationServices" connectionString="ConnectionStringData" providerName="System.Data.SqlClient" />
</connectionStrings>
<system.web>
<authentication mode="Forms">
<forms loginUrl="~/Account/Login.aspx" timeout="2880" />
</authentication>
<authorization>
<deny users="?"/>
</authorization>
<membership>
<providers>
<clear/>
<add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ApplicationServices"
enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false"
maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10"
applicationName="/" />
</providers>
</membership>
...
...
</system.web>
...
...
</configuration>
また、匿名ユーザーから Web フォームを保護する必要がある場合は、次のように記述できます。
protected void Page_Load(object sender, EventArgs e)
{
if (!User.Identity.IsAuthenticated)
Response.Redirect("Login.aspx");
// Todo add code here.
}
これを使用できます-に基づいてlocation attribute
<configuration>
<location path="SecuredWebForm.aspx">
<system.web>
<authorization>
<allow users="..."/>
</authorization>
</system.web>
</location>
</configuration>
注:ユーザーの値を調整します
リンク: http://msdn.microsoft.com/en-us/library/b6x6shw7%28v=vs.71%29.aspx
セキュリティアーキテクチャがある場合は、IsAuthenticated
プロパティを使用できます
リンク : http://msdn.microsoft.com/en-us/library/system.web.httprequest.isauthenticated.aspx
if (HttpContext.Current.User.Identity.IsAuthenticated)
{
}