[ad_1]
やあ、
私の Web アプリケーションでは、フォーム認証を使用しています。 Default.aspx フォームへのログイン リダイレクトに成功した後、最初にログイン ページ (Login.aspx) を読み込みます。 デフォルト ページでは、すべてのメニューが一覧表示されます。メニューをクリックすると、デフォルト ページ内にページがロードされます (Telerik コントロールを使用)。
今、私は問題に直面しています.ユーザーが直接URLを入力している間(ページ名の1つがpage1.aspxであると仮定します)、例: Myapplication/page1.aspx ページがロードされています これを制限したい.
これに対する解決策を提案してください。
解決策 2
これはすべて web.config で location タグを使用して実行できます。
<location path="Page1.aspx" allowoverride="false"> <system.web> <authorization> <deny users="?" roles="TEMP" /> <allow roles="ADMIN, USERS" /> </authorization> </system.web> </location>
詳細については、次のリンクを参照してください。
https://wiki.asp.net/page.aspx/653/aspnet-webconfig–location-and-authroization-tags/[^]
解決策 3
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method)] public class NoDirectAccessAttribute : ActionFilterAttribute { public override void OnActionExecuting(ActionExecutingContext filterContext) { if (filterContext.HttpContext.Request.UrlReferrer == null || filterContext.HttpContext.Request.Url.Host != filterContext.HttpContext.Request.UrlReferrer.Host) { filterContext.Result = new RedirectToRouteResult(new RouteValueDictionary(new { controller = "Home", action = "Logout", area = "Main" })); } } }
次に、コントローラーに属性を追加します。
解決策 1
「セッション変数」とサイトマスターを検索して調べる(任意)
ログイン時に、ログイン情報を保存するためのセッション変数として使用し、
すべてのページまたはマスターページは、セッションでその変数を確認する必要があります。問題がない場合は、ユーザーがページをロードできるようにし、そうでない場合はログインページにリダイレクトします
ログインページで:
Session.add(“my変数名”, “値”)
マスターページ、またはすべてのページ読み込みで
c#
if (Session["myvariableName"]!=Null & Session["myvariable"]!= "value") Response.Redirect("Login.aspx",true);
vb .net
if Session("myvariableName") isnot nothing and Session("myvariable") = "value" Response.Redirect("Login.aspx",true) end if
[ad_2]
コメント