'2017/06'에 해당되는 글 5건

Programming/.NET

PasswordRecovery 컨트롤은 회원으로 관리되는 특정 사용자가 자신의 비밀번호를 잊은 경우 해당 사용자에게 자신의 비밀번호를 알려주는 방법이 제공합니다.

 

<asp:PasswordRecovery ID="PasswordRecovery1" runat="server"></asp:PasswordRecovery>

 

대게 비밀번호는 사용자의 이메일을 통해 알려주는 방법을 사용하게 되는데 하위 MailDefinition 요소로 이메일 전송에 관한 설정을 진행할 수 있습니다.

 

<asp:PasswordRecovery ID="PasswordRecovery1" runat="server">

<MailDefinition From="anchor37@cliel.com" Subject="비밀번호 알려 드려요~"></MailDefinition>

</asp:PasswordRecovery>

 

필요에 따라 CC나 IsBodyHtml속성을 통해 메일에 관한 세부사항을 지정할 수 있습니다. 다만 이것으로 메일 발송이 가능한 것은 아니고 web.config에 실제 메일 발송이 가능한 메일서버설정이 이루어 져야 합니다.

 

<system.net>

    <mailSettings>

        <smtp deliveryMethod="Network" from="anchor37@cliel.com" >

        <network host="smtp.cliel.com" defaultCredentials="true" enableSsl="true" 

port="216" userName="anchor37" password="1234" />

        </smtp>

    </mailSettings>

</system.net>

 

일반적으로 위와같이 처리하면 사용자 메일을 통해 비밀번호를 전달하게 됩니다. 그러나 만약 Membership 공급자에 passwordFormat 속성이 hash로 되어 있는 경우에는 사용자에게 비밀번호를 전달해도 암호화된 내용이므로 실제 비밀번호가 무엇인지는 여전히 알 수 없습니다.

 

그래서 passwordFormat를 Clear나 Encrypted로 설정해서 비밀번호가 저장되는 방식을 바꾸거나 아니면 신규로 비밀번호를 생성해 사용자에게 전달해야 합니다. 대부분의 경우 후자쪽이 널리 쓰이는 방법입니다.

 

string password = Membership.GeneratePassword(10, 5);

 

Membership의 GeneratePassword는 비밀번호를 자동으로 생성하는 메소드입니다. 위 예제에서는 비밀번호를 특수문자 5개를 포함한 10자리로 생성하도록 하였습니다.

 

위 내용을 PasswordRecovery 컨트롤의 OnVerifyingAnswer 이벤트에 추가하여 사용자가 정상적으로 답변이 완료되면 비밀번호를 생성하고 메일로 발송하도록 처리하면 됩니다.

'Programming > .NET' 카테고리의 다른 글

[Visual Studio] Immediate Window  (0) 2017.07.12
[ASP.NET] SQL Server 캐시 종속성  (0) 2017.07.04
[ASP.NET] PasswordRecovery  (0) 2017.06.27
[ASP.NET] WindowsIdentity  (0) 2017.06.21
[ASP.NET] 웹파트(WebParts)  (0) 2017.06.13
[ASP.NET] 역활(Role)  (0) 2017.06.07
0 0
Programming/.NET

일반적으로 사용자에 대한 인증정보를 확인하는 데는 User.Identity 개체를 사용합니다. 하지만 웹애플리케이션의 인증방식이 윈도우인증이라면 사용자에 대한 정보를 가져오는데 WindowsIdentity가 사용될 수 있습니다.

 

WindowsIdentity 개체는 다음과 같이 사용자 역활을 확인하는데 단순 문자열대신 열거형으로 좀 더 명확히 사용할 수 있고

 

if (User.IsInRole(WindowsBuiltInRole.Administrator.ToString())) {
    //
}

 

Identity 처럼 사용자 인증형태나 이름(아이디)등도 확인할 수 있습니다.

 

WindowsIdentity win_user = WindowsIdentity.GetCurrent();
win_user.IsAnonymous.ToString(); //익명여부
win_user.IsGuest.ToString(); //Guest 사용자 여부
win_user.IsSystem.ToString(); //System 사용자 여부
win_user.Name.ToString(); //사용자 이름

'Programming > .NET' 카테고리의 다른 글

[ASP.NET] SQL Server 캐시 종속성  (0) 2017.07.04
[ASP.NET] PasswordRecovery  (0) 2017.06.27
[ASP.NET] WindowsIdentity  (0) 2017.06.21
[ASP.NET] 웹파트(WebParts)  (0) 2017.06.13
[ASP.NET] 역활(Role)  (0) 2017.06.07
[ASP.NET] ChangePassword  (0) 2017.05.30
0 0
Programming/.NET

ASP.NET WebParts는 웹페이지를 구성하고 있는 요소의 순서 혹은 배치를 바꾸거나 별도의 색상을 부여할 수 있는등 각 사용자별 웹페이지의 커스터마이징 기능을 구현할 수 있도록 해주는 포털프레임워크입니다.

 

이를 위해 ASP.NET에서는 웹파트라는 하나의 영역으로 필요한 컨트롤과 클래스를 제공하며 개발자는 이러한 프레임웤 라이브러리를 통해 해당 기능을 손쉽게 구현할 수 있습니다.

 

 1. WebPartManager

 

WebPartManager 컨트롤은 존(Zone)의 영역을 관리하는 메인컨트롤입니다. 내부에 존항목을 포함하는 형태로서 자체적인 디자인을 갖고 있지 않습니다.

 

<asp:WebPartManager ID="WebPartManager1" runat="server"></asp:WebPartManager>

 

 2. WebPartZone

 

WebPartManager 컨트롤을 화면에 배치하고 나면 그 다음 WebPartZone으로 각 영역을 생성하여 화면을 구성합니다. 이 컨트롤을 통해 화면에 보여줄 요소를 만들고 나면 해당 영역은 WebPartManager를 통해 자동으로 관리됩니다.

 

<asp:WebPartZone ID="WebPartZone1" runat="server">

    <ZoneTemplate>

        <asp:Button ID="Button1" runat="server" Text="Button" />

    </ZoneTemplate>

</asp:WebPartZone>

<asp:WebPartZone ID="WebPartZone2" runat="server">

    <ZoneTemplate>

        <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>

    </ZoneTemplate>

</asp:WebPartZone>

 

WebPartZone 컨트롤은 내부에 요소를 담기위해 <ZoneTemplate>을 포함해야 합니다. 상기 예제는 2개의 웹파트존 영역으로서 하나는 버튼 다른 하나는 텍스트박스 컨트롤을 담고 있습니다. 이렇게 담아놓은 요소는 WebPartZone안에서 개별적으로 커스터마이징이 가능합니다.

 

하나의 <ZoneTemplate>안에 여러개의 요소가 포함되어 있는 경우 LayoutOrientation속성으로 수직 또는 수평방향의 출력형태를 지정할 수 있습니다. 참고로 내부에는 HTML뿐만 아니라 다른 ASP.NET컨트롤등도 자유롭게 포함될 수 있습니다.(단 runat="server" 지정이 가능한것만)

 

 

WebPartZone의 영역은 기본적으로 Untitled라는 제목이 붙는데 다른 이름을 부여하려면 내부 요소에 Title속성을 붙여 원하는 이름을 지정하면 됩니다.

 

<asp:WebPartManager ID="WebPartManager1" runat="server"></asp:WebPartManager> <asp:WebPartZone ID="WebPartZone1" runat="server">

    <ZoneTemplate>

        <asp:Button ID="Button1" runat="server" Text="Button" Title="버튼" />

    </ZoneTemplate>

</asp:WebPartZone>

<asp:WebPartZone ID="WebPartZone2" runat="server">

    <ZoneTemplate>

        <asp:TextBox ID="TextBox1" runat="server" Title="텍스트박스"></asp:TextBox>

    </ZoneTemplate>

</asp:WebPartZone>

 

WebPartZone을 생성 후 로그인등의 과정을 통해 인증사용자로 접근해 보면 각 존의 최소화와 닫기기능이 활성화 되는 것을 볼 수 있습니다.

 

 

이는 인증사용자만이 커스터마이징이 가능하도록 되어 있기 때문인데 web.config에서 설정을 수정하면 익명사용자도 커스터마이징에 접근이 가능하도록 할 수 있습니다.

 

 3. CatalogZone

 

특정 WebPartZone의 요소를 사용자가 Close(닫기)하여 닫게되면 해당 요소는 본래의 WebPartZone영역에서  사라지게 됩니다. 그리고 이렇게 사리진 요소는 CatalogZone을 통해 사용자가 스스로 다시 복구할 수 있습니다.

 

<asp:CatalogZone ID="CatalogZone1" runat="server">

    <ZoneTemplate>

        <asp:PageCatalogPart ID="PageCatalogPart1" runat="server" />

    </ZoneTemplate>

</asp:CatalogZone>

 

CatalogZone은 WebPartManager와 마찬가지로 하나의 <ZoneTemplate>이 필요하며 내부에 PageCatalogPart가 존재해야 합니다.

 

 

페이지를 실행하면 Page Catalog 라는 부분에 추가할 수 있는 요소가 보이는데 예제에서의 시점은 닫은 요소가  하나도 없으므로 추가가능한 요소항목도 표시되지 않습니다. 시험삼아 WebPartZone2 영역의 텍스트박스를 닫아보겠습니다.

 

 

WebPartZone2(텍스트박스)영역을 닫으면 Page Catalog에 추가가능한 항목으로 표시됩니다. 여기에서 원하는 요소를 왼쪽 체크박스에 체크표시를 하고 Add to에서 추가할 WebPartZone을 선택한뒤 Add버튼을 누르면 해당 요소는 선택한 WebPartZone에 추가될 것입니다.

 

기본적으로 화면에 표시하지 않고 사용자가 선택해서 WebPartZone에 추가해야 하는 경우라면 DeclarativeCatalogPart를 사용해야 합니다.

 

<asp:CatalogZone ID="CatalogZone1" runat="server">

    <ZoneTemplate>

        <asp:DeclarativeCatalogPart ID="DeclarativeCatalogPart1" runat="server">

            <WebPartsTemplate>

                <asp:Calendar ID="Calendar1" runat="server" Title="달력"></asp:Calendar>

            </WebPartsTemplate>

        </asp:DeclarativeCatalogPart>

    </ZoneTemplate>

</asp:CatalogZone>

 

DeclarativeCatalogPart 내부에 추가해야할 요소를 WebPartsTemplate으로 정의하면

 

 

비로소 원하는 요소를 선택한 WebPartZone에 추가할 수 있게 됩니다.

 

 4. EditorZone

 

WebPartZone의 설정을 변경할 수 있도록 하는 것이 바로 EditorZone의 역활입니다. EditorZone을 이용하면 WebPartZone의 외관, 동작, 배치등의 세부사항 변경이 가능합니다.

 

<asp:EditorZone ID="EditorZone1" runat="server">

    <ZoneTemplate>

        <asp:LayoutEditorPart ID="LayoutEditorPart1" runat="server" />

    </ZoneTemplate>

</asp:EditorZone>

 

다른 Zone과 마찬가지로 EditorZone도 하나의 ZoneTemplate이 필요하며 ZoneTemplate안에 설정 변경을 위한 템플릿을 추가하면 됩니다. 예제에서는 LayoutEditorPart 하나를 포함하여 WebPartZone에 대해 레이아웃변경을 가능하도록 하였습니다.

 

 

만약 특정 WebPartZone에서 명시적으로 레이아웃 설정이 불가능하게 하려면 원하는 WebPartZone의 AllowLayoutChange속성을 false로 하면 됩니다. 참고로 이 설정은 CatalogZone에서의 WebPartZone추가기능등에도 적용됩니다.

 

동작영역은 기본적으로 관리자가 전체 사용자에 대해 WebPartZone의 동작상태를 설정하는 용도로 사용됩니다. 따라서 아래와 같이 동작에 대한 편집기능을 EditorZone에 포함시켜도 일반 사용자는 해당 설정변경이 가능한  화면을 볼 수 없습니다.

 

일반사용자에도 동작관련 기능을 활성화 하려면 web.config에서 webPart의 개인화를 허용해야 하며

 

<webParts>

   <personalization>

   <authorization>

     <allow users="*" verbs="enterSharedScope"/>

   </authorization>

  </personalization>

 </webParts>

 

해당 기능을 보여줄 페이지에도 WebPartManager의 Personalization 객체에서 ToggleScore 메소드를 호출해야 합니다.

 

if (WebPartManager1.Personalization.Scope == PersonalizationScope.User && 

WebPartManager1.Personalization.CanEnterSharedScope) {

    WebPartManager1.Personalization.ToggleScope();

}

 

EditorZone에 들어갈 수 있는 요소중 PropertyGridEditorPart는 WebPartZone의 특정 요소가 포함하고 있는 속성을 직접 설정할 수 있게 해주는 역활을 수행합니다. 좀 더 추가적인 내용은 '6. 사용자 WebPart 생성'부분을 참고해 주십시오.

 

 5. WebPartVerb

 

WebPartVerb는 각 WebPartZone에 대해 최소화, 닫기등의 동작관련 세부설정을 가능하게 합니다.

 

<asp:WebPartZone ID="WebPartZone2" runat="server">

    <CloseVerb Text="죽이기" Enabled="false" />

    <ZoneTemplate>

        <asp:TextBox ID="TextBox1" runat="server" Title="텍스트박스"></asp:TextBox>

    </ZoneTemplate>

</asp:WebPartZone>

 

예들 들어 특정 WebPartZone에서 닫기에 관한 동작인 CloseVerb을 위와 같이 설정했다면 해당 WebPartZone은 '닫기'가 불가능해질 것입니다.

 

 

참고로 사용할 수 있는 WebPartVerb는 <ConnectVerb>, <DeleteVerb>, <EditVerb>, <ExportVerb>, <HelpVerb>, <MinimizeVerb>, <RestoreVerb>등이 있습니다.

 

 6. Custom WebPart

 

기존에 존재하는 WebPart 대신 개발자가 직접 WebPart를 생성하여 사용할 수도 있습니다. 이를 위해 우선

프로젝트에 서버컨트롤을 생성하고 다음과 같이 클래스를 작성합니다.

[DefaultProperty("Text")]
[ToolboxData("<{0}:customerWebPart runat=server></{0}:customerWebPart>")]
public class customerWebPart : WebPart
{
    public customerWebPart()
    {
        AllowClose = false;
    }
 
    [Personalizable, WebBrowsable]
    public string YourName
    {
        get;
        set;
    }
 
    TextBox namebox = new TextBox();
 
    protected override void CreateChildControls()
    {
        namebox.ID = "myname";
        namebox.Text = YourName;
 
        Controls.Add(namebox);
    }
}

클래스는 반드시 WebPart를 상속받아야 합니다. 그러면 AllowClose = false; 와 같이 WebPart에 존재하는 특별한 기능을 사용할 수 있게 됩니다. 예제에서는 AllowClose를 false로 설정하여 닫기 기능을 사용하지 못하도록 하였습니다.

 

YourName은 커스텀 속성인데 Personalizable과 WebBrowsable 속성이 정의되어 있는것을 볼 수 있습니다. Personalizable은 WebPart의 개인화를 활성화하며 WebBrowsable은 이후에 살펴볼 PropertyGridEditorPart에 속성설정이 표시될지를 지정합니다.

 

특히 Personalizable은 해당 속성의 설정값이 적용될 사용자 범위를 지정할 수 있는데

[Personalizable(PersonalizationScope.User), WebBrowsable]
public string YourName
{
    get;
    set;
}

User는 개인별 Shared는 전체사용자에 해당합니다. 즉, Shared로 지정된 속성을 수정하면 전체 사용자에게보여질 것이며 User로 지정된 것이라면 실제 속성을 수정한 사용자에게만 설정값이 적용될 것입니다.

 

CreateChildControls() 오버로드 메소드는 내부에서 컨트롤에 보여질 레이아웃을 구성합니다.

 

프로젝트 안에서 서버컨트롤을 생성했다면 해당 컨트롤을 배치할 수 있도록 해야 합니다. Visual Studio의 Toolbox에서 원하는 카테고리를 선택하고 마우스 오른쪽 버튼을 눌러 Choose Toolbox Items를 선택합니다.

 

그리고 Browse... 버튼을 눌러 현재 웹프로젝트의 dll을 선택하면 다음과 같이 추가한 서버컨트롤이 표시될 것입니다.

 

 

해당 서버 컨트롤을 선택하여 Toolbox에 추가하고 디자인모드에서 컨트롤을 끌어다 놓으면

 

<cc1:customerwebpart runat="server"></cc1:customerwebpart>

 

컨트롤이 생성될 것입니다. 컨트롤의 id를 namebox로 하고 코드에서 속성을 변경합니다.

 

namebox.YourName = "anchor37";

 

이제 해당 컨트롤을 원하는 WebPartZone에 배치하면 성공적으로 컨트롤이 표시될 것입니다.

<asp:WebPartZone ID="WebPartZone3" runat="server">
    <ZoneTemplate>
        <asp:Calendar ID="Calendar1" runat="server" Title="달력"></asp:Calendar>
        <cc1:customerwebpart runat="server" ID="namebox"></cc1:customerwebpart>
    </ZoneTemplate>
</asp:WebPartZone>

 

 

위에서 EditorZone에 대해 알아볼때 PropertyGridEditorPart를 언급한 적이 있는데 Eidit 모드에서 ProertyGridEditorPart를 사용할 경우 우리가 추가한 customerwebpart 컨트롤의 YourName속성이 다음과 같이 표시될 수 있습니다.

<asp:EditorZone ID="EditorZone1" runat="server">
    <ZoneTemplate>
        <asp:PropertyGridEditorPart ID="PropertyGridEditorPart1" runat="server" />
    </ZoneTemplate>
</asp:EditorZone>

 

'Programming > .NET' 카테고리의 다른 글

[ASP.NET] PasswordRecovery  (0) 2017.06.27
[ASP.NET] WindowsIdentity  (0) 2017.06.21
[ASP.NET] 웹파트(WebParts)  (0) 2017.06.13
[ASP.NET] 역활(Role)  (0) 2017.06.07
[ASP.NET] ChangePassword  (0) 2017.05.30
[ASP.NET] LoginStatus  (0) 2017.05.23
0 0
Develop

말씀하신대로 작동이미지 캡쳐하였습니다.

 

개발자분과는 라이선스와 유지보수쪽에서 마무리 되어야 합니다. 기타 나머지 사항도 따로 협의해보시구요.

 

연락처는 문자로 따로 드리겠습니다.

 

닷넷용입니다. 컨트롤 라이브러리(dll)형태로서 제작하시는 프로그램에 컨트롤 형태로 얹어서 사용하는 방식입니다.

 

 

 

 

 

 

 

 

 

 

 

 

'Develop' 카테고리의 다른 글

수학 수식입력기 (Math Editor)  (0) 2017.06.09
웹 UI 테스트 - WebUITester  (0) 2016.11.22
0 0
Programming/.NET

우리는 역활에 대한 간단한 상황을 아래 글의 '보안트리밍'부분에서 조금 살펴본적이 있습니다.

 

2016/02/19 - [Programming/ASP.NET] - [ASP.NET] 사이트 네비게이션 (sitemap)

 

역활은 사이트내부의 권한에 관한 세부설정기능으로서 각 사용자에 대한 사이트의 사용범위를 제한하고자 하는데 사용되는 기술입니다. 예를 들어 위 글에서도 보았겠지만 일반사용자와 관리자권한이 있는 사용자간에 표시될 수 있는 메뉴항목이 다른경우를 들 수 있겠습니다.

 

역활관리에 관한 공급자는 기본적으로 machine.config.comments에 설정되어 있으며

 

<roleManager enabled="false" cacheRolesInCookie="false" cookieName=".ASPXROLES" cookieTimeout="30" cookiePath="/" cookieRequireSSL="false" cookieSlidingExpiration="true" cookieProtection="All" defaultProvider="AspNetSqlRoleProvider" createPersistentCookie="false" maxCachedResults="25">
        <providers>
            <clear />
            <add connectionStringName="LocalSqlServer" applicationName="/" name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
            <add applicationName="/" name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
            </providers>
</roleManager>

 

필요에 따라 machine.config나 web.config에서 위 설정사항을 재정의할 수 있습니다. machine.config는 서버 전체에 적용되는 경우이고 web.config는 해당 사이트수준에서만 적용되는 경우입니다.

 

아래는 기본적인 속성에 관한 설명입니다.

 

 enabled

 역활관리 사용여부 설정

 cacheRolesinCookie

 역활정보를 쿠키를 통해 저장하고 읽어오도록 합니다. 보안상 좋지 않으므로 false로 지정해 공급자를 통해 역활정보가 관리할것을 권장합니다.

 cookieName

 역활정보를 쿠키에 저장할 경우 해당 쿠키값의 이름을 설정합니다.

 cookieTimeout

 쿠키소멸시간을 설정합니다. 단위는 분입니다.

 cookieRequireSSL

 역활정보가 SSL을 통해 전송되어야 하는 경우 true로 설정합니다.

 cookieSlidingExpiration

 역활정보가 쿠키에 저장될 경우 쿠키만료 방식을 슬라이딩방식으로 할것인지를 지정합니다. 슬라이딩이란 마지막 요청이후부터 30분간 쿠키가 유지됨을 의미합니다. 만약 이 속성이 false라면 최초요청후부터 30분간만 쿠키가 유지될 것입니다.

 cookieProtection

 역활정보가 쿠키에 저장될 경우 쿠키보호 수준을 설정합니다.

 createPersistentCookie

 이 속성이 true라면 역활정보가 쿠키에 저장될 경우 쿠키는 영구히 유지될 것입니다.

 

따라서 웹사이트에서 역활관리를 사용하기 위해서는 roleManager를 활성화해야 합니다.

 

<roleManager enabled="true"></roleManager>

 

역활을 다루기 위해서는 Role 클래스를 사용하며 해당 클래스의 메소드를 호출하는 것으로 역활관리를 수행할 수 있습니다.

 

Roles.CreateRole("admin");

 

역활을 추가합니다.

 

Roles.RoleExists("Admin");

 

추가된 역활은 RoleExists 를 통해 존재여부를 확인할 수 있습니다.

 

string[] roles = Roles.GetAllRoles();

 

GetAllRoles메소드는 추가된 모든 역활을 가져오도록 합니다.

 

string[] users = Roles.GetUsersInRole("Admin");

 

만약 특정 역활에 해당하는 사용자만을 가져오려면 GetUserInRole메소드를 사용하면 됩니다. 반대로 특정 사용자가 소속된 모든 역활을 가져오려면 GetRolesForUser 메소드를 사용합니다.

 

Roles.DeleteRole("Admin");

 

역활 삭제는 DeleteRole메소드를 사용합니다. 다만 역활은 해당 역활에 포함된 사용자가 존재한다해도 삭제되버리는데 이 실수를 방지하려면 다음과 같이 메소드를 호출해야 합니다.

 

Roles.DeleteRole("Admin", true); .

 

두번째 매개변수에 true를 지정하면 해당 역활에 사용자가 포함되어 있는 경우 예외를 발생합니다.

 

Roles.AddUserToRole("anchor37", "Admin");

 

특정 사용자를 생성한 역활에 추가합니다.

 

string[] users = { "anchor37", "anchor38" };

Roles.AddUsersToRole(users, "Admin");

 

다수의 사용자를 한 역활에 추가하는 경우 AddUsersToRole메소드를 사용합니다. 반대로 한명의 사용자를 여러 역활에 추가하는 경우 AddUserToRoles메소드를 사용하고 여러사용자를 여러역활에 추가하는 경우  AddUsersToRoles메소드를 사용합니다.

 

Roles.RemoveUserFromRole("anchor37", "Admin"); .

 

특정역활에서 특정사용자를 제거하려면 RemoveUserFromRole메소드를 사용합니다. 다수의 사용자를 하나의 역활에서 제거하려면 RemoveUsersFromRole메소드를, 다수의 역활에서 하나의 사용자를 제거하려면 RemoveUserFromRoles메소드를, 다수의 사용자를 다수의 역활에서 제거하려면 RemoveUsersFromRoles메소드를 사용하면 됩니다.

 

if (Roles.IsUserInRole("anchor37", "Admin")) {

    Response.Write("안녕하세요. 관리자님");

}

 

특정 사용자가 특정 역활에 소속되어 있는지를 확인하기 위해서는 IsUserInRole메소드를 사용합니다. 아이디를 지정하지 않고 로그인된 사용자 정보를 확용할 경우 다음과 같이 해도 됩니다.

 

if (Roles.IsUserInRole("Admin")) {

    Response.Write("안녕하세요. 관리자님");

 

좀 다른 방법으로

 

string[] user = Roles.FindUsersInRole("Admin", "anchor37");

 

특정 역활에서 지정된 사용자를 찾을 수도 있습니다. 만약 User개체를 사용하는 경우라면 다음과 같이 할 수도 있습니다.

 

if (User.IsInRole("Admin")) {
    //
}

 

결과는 bool값으로 가져옵니다. 윈도우 인증이라면 '도메인\\역활명'형식으로 지정합니다.

 

Roles.DeleteCookie();

 

역활관련 데이터가 쿠키로 저장되는 경우 이 메소드는 관련 쿠키값을 사용자 컴퓨터에서 삭제할 것입니다.

'Programming > .NET' 카테고리의 다른 글

[ASP.NET] WindowsIdentity  (0) 2017.06.21
[ASP.NET] 웹파트(WebParts)  (0) 2017.06.13
[ASP.NET] 역활(Role)  (0) 2017.06.07
[ASP.NET] ChangePassword  (0) 2017.05.30
[ASP.NET] LoginStatus  (0) 2017.05.23
[ASP.NET] 히스토리(History) 관리  (0) 2017.05.17
0 0
1
블로그 이미지

클리엘