私は2つのメニューを持っています.1つは通常のユーザー用に設定され、もう1つは管理者用に設定されています。私は誰がログインしているのかを(自分のコンピュータへの彼らのADログインに基づいて)確認してから、適切なメニューに表示したいと思います。htmlのdefault.aspxでWindows認証を使用する方法
私はウェブサイトで働いています。私のメインページは今のところプレーンですが、私は内部ユーザーにサイトを開き、管理者だけを管理者にするために認証を取得しようとしています。私が今までに持っていたことはあまりありません。あなたは私が多くを持っていない見ることができるように
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>Frontier Reports</title>
<link rel="StyleSheet" href="stylesheet.css" type="text/css">
<script>
var resize = setInterval(function() { chng_iframe_height('MainPageFrame', 'header', 'footer') }, 500);
function chng_iframe_height(ifrid, hid, fid)
{
var eheight = window.innerHeight;
var ifrobj = document.getElementById(ifrid);
var header = document.getElementById(hid);
var footer = document.getElementById(fid);
var header_height = getComputedStyle(header).height;
var footer_height = getComputedStyle(footer).height;
var reserved_height = parseInt(header_height) + parseInt(footer_height);
var reserved_height = reserved_height + 65;
ifrobj.style.height = eheight - reserved_height + "px";
}
</script>
</head>
<body onload="chng_iframe_height('MainPageFrame','header','footer');">
<!-- #include file="MenuCheck.aspx"-->
<div id="header">
<div class="wrap">
<div class="logo">
<h1></h1>
</div>
</div>
</div>
<iframe src="MainPage.aspx" name="MainPage" id="MainPageFrame" FrameBorder=0>
This will show up if Chrome doesn't understand IFrame.
</iframe>
<div id="footer">
<asp:LoginName ID="LoginName1" FormatString="{0}" runat="server" />
<div class="wrap">
<h2></h2>
</div>
</div>
</body>
</html>
:ここにweb.configファイルがあります:
<system.web>
<authentication mode="Windows" />
<authorization>
<deny users="?"/>
</authorization>
</system.web>
、ここではdefault.aspxをです。私はscript
を使ってユーザー名を取得しようとしましたが、うまくいきませんでした。私はまた私のために働く何かを見つけるためにいくつかの他の答えを見てきました。私が持っている最大の問題は、私はサーバー自体にアクセスできないということです。私が持っているのは、これを働かせるために私が上に示したものです。私はユーザー名を画面に表示することができますが、メニューを変更できるように、if
else
のどこにあるのかわかりません。
私は次のことをチェックアウトしました:
How to get Current User who's accessing ASP.net app?
HttpContext.Current.User not populated with Windows Authentication enabled
Using Windows Authentication in ASP.NET
How to check if user is logged in
Recipe: Enabling Windows Authentication within an Intranet ASP.NET Web application
EDIT私はこれが動作するようになった:
<% if(1 == 1) {%>
<!-- #include file="AdminMenu.php"-->
<% } else {%>
<!-- #include file="Menu.php"-->
<% } %>
私はif(User.Identity.GetUserID() == "CORP\\mmm976")
またはif(User.Identity.Name == "CORP\\mmm976")
にそれを変更してみた場合は、その後、私はサーバーエラーを取得します。
私はこの<%using Microsoft.AspNet.Identity%>
を追加して、GetUserID()
を動作させるようにしました。静止サーバーエラー。
FINAL EDIT
これが動作するようになりました!
Default.aspxページのインクルードを変更して、別の.aspxページを取得しました。このようにして、ユーザーを確認し、ユーザーのログイン名に基づいて正しいメニューを表示するためのコードを持つことができます。ここMenuCheck.aspxは次のとおりです。
<%@ Page Language="C#" %>
<% if (User.Identity.Name == @"corp\mmm976") {%>
<!-- #include file="AdminMenu.php"-->
<% } else {%>
<!-- #include file="Menu.php"-->
<% } %>
これらの記事は、あなたが何をする必要があるかを完全に説明しています。しかし、あなたはマークアップですべてをやろうとしているようで、PHPを含めようとしています。それは動作しません。 投稿したリンクを再訪してください。 – Alexander
私が投稿した記事は私を助けていません。彼らのほとんどは、サーバー上の何かを変更することについて話しています。私はそんなことはできません。残りの部分では、web.configに何かを追加する方法について説明します。私はそこに何かを追加するたびに動作を停止し、505のエラーページが表示されます。 – Mike
サーバーの設定を変更できないのはなぜですか?また、あなたができなければ、ここでここで止めることができます。 – Alexander