2011-08-23 5 views
0

내 asp.net 응용 프로그램과 windows 인증을 사용하고 있습니다간단한 web.config 파일 질문 asp.net

다른 사용자는 웹 사이트의 다른 부분에 액세스 할 수 있습니다.

난 config 파일에서 같은 것을 할 싶습니다 :

<appSettings> 
    <role1> 
<user>agordon</user><user>jsmith</user> 
    </role1> 
<role2><user>dtodd</user><user>kveel</user></role2> 
    </appSettings> 

이 할 수 있습니까?

나는 다음과 같이 사용자 이름 얻을 것입니다 인증 할 때 :

string username = HttpContext.Current.User.Identity.Name.ToString(); 

을 해당 사용자 당신은 이 작업을 수행 할 수

답변

2

사용 <authorization> 요소 :

는 반대의 예를 제공하기 위해, 여기에 웹 양식을 사용하여 유사한 방법 MSDN (예)입니다 귀하의 사이트의 일부 :

<location path="Pages/Administration"> 
     <system.web> 
      <authorization> 
      <deny roles="*"/> 
      <allow roles="Admin" /> 
      </authorization> 
     </system.web> 
</location> 
+0

감사합니다. 이 부분과 관련된 부분은 무엇입니까? –

+0

'path' 속성이 있습니다. –

+0

덕분에 많은 도움을받을 수 있습니다. http://serverfault.com/questions/304166/does-iis-server-have-to-be 도메인에 대한 Windows 인증 및 역할 –

0

특정 역할에 존재하는지 확인하지만 정말 최선의 방법이 아니다 .

문제는 여기에 appSettings는이 Web.config의 스키마에 의해 제어되지 않는 것입니다, 그래서 당신은 프로그래밍 방식으로 끔찍한 방식으로 appSettings는 열거해야합니다 : 나는 당신이 요구하는지 무엇을하지 알고

if (configurationSettings.HasKey("Role1")) { ... } 
else if (configurationSettings.HasKey("Role2")) { ... } 
else if (configurationSettings.HasKey("Role3")) { ... } 
//continue ad.nauseum; it's not fun - trust me! 

, 그러나 당신이 정상적인 ASP.Net webforms를 사용하고 있다면 그것은 약간의 단점이 있습니다. 각 페이지/컨트롤에서 현재 사용자를 찾아서 해당 사용자가 액세스 할 수 있는지 확인한 다음 리디렉션하거나 계속해야합니다.

ASP.Net MVC를 사용하는 경우 속성을 사용하면 훨씬 더 깨끗합니다.

Authorize(Roles = "Managers")] 
public ActionResult CompanySecrets() 
{ 
    return View(); 
} 

사용자가 관리자 역할을 갖고 있지 않으면 액세스 권한을 부여하지 마십시오.

<configuration> 
    <system.web> 
     <authorization> 
     <allow users="*" /> 
     <deny users="?"/> 
     </authorization> 
    </system.web> 
</configuration> 

그런 다음 특정을 위해 그것을 수정할 수 있습니다

http://support.microsoft.com/kb/311495

+0

정말 고마워. 역할을 수행 할 수있게하려면 그 일을하려면 미친 농구를 통과해야할까요? –

+0

downvote를 설명하십시오; 나는 OP가 물었던 방법으로 문제를 설명하고 문제를 해결하는 다른 방법의 두 가지 예를 제시했다. –

+0

아니요, 역할 인증이 좋습니다. AppSettings를 통해 문제가 발생했습니다. 내가 제공 한 MSDN에 대한 링크는 역할 인증을 수행하는 방법을 보여줍니다. 저장 방법을 사용하여보고 된 역할과 액세스를 연결해야합니다. –