2010-12-01 3 views
0

데이터베이스 서버와 트랜잭션을 수행하는 DLL 프로젝트를 개발 중입니다. 유일한 문제는 이상적인 DLL이어야하며, 이전에 발견되지 않은 경우 로그인 화면을 요청해야한다는 것입니다. 정보. 이 로그인 화면은 Windows 응용 프로그램과 마찬가지로 C#으로 작성해야합니다.dll C# 프로젝트의 로그인 창

모든 아이디어는 매우 부정확 할 것입니다. 사전

답변

3

이의

감사는 일반적으로 DLL에 투입 할 물건의 종류가 아닙니다. 로그인 화면은 구현 UI에 따라 달라집니다. 등록 정보로 구현해야하는 로그인 자격 증명이있는 인터페이스를 구현하는 데이터 액세스 클래스를 만드는 것이 좋습니다. 이것은 어떤 소모를 붙일 수 있습니다 (웹, 윈폼, WPF, 무엇이든)는 데이터 클래스에 직접 자격 증명을 로그인 화면을 만들거나 전달하는 : 충실하게 인터페이스를 사용

public interface IMyDataInterface 
{ 
    string loginUser { get; set; } 
    string loginPW { get; set; } 
} 

public class MyDataLayer : IMyDataInterface 
{ 
    public MyDataLayer(string login, string pw) 
    { 
     loginUser = login; 
     loginPW = pw; 
    } 
} 

노출 된 데이터 영역은 동일한 구현의 기초를 가지고 있음을 보장합니다 소비 애플리케이션.

편집은 더 안전한 방법 반영하기 : (@ 크리스에 의해 아이디어) 생성자가 자격 증명을 제공하는 다양한 방법을 포함하는 오버로드 할 수

using System.Net; 

public interface IMyDataInterface 
{ 
    NetworkCredential credentials { get; set; } 
} 

public class MyDataLayer : IMyDataInterface 
{ 
    public MyDataLayer(NetworkCredential loginInfo) 
    { 
     credentials = loginInfo; 
    } 
} 

을하지만를 SecureString 클래스를 포함하는 데 사용되어야한다 모든 전화에서 암호.

+1

그냥 권장 사항 : username 및 password 문자열 대신 NetworkCredential 유형의 속성을 사용하십시오. NetworkCredential 클래스는 암호를 SecureString으로 내부적으로 저장하므로 기본적으로 보안이 강화되며 인증이 필요한 많은 내부 .NET 클래스에서도 사용됩니다. – Chris

+0

@Chris - 실제로는 아주 좋은 아이디어입니다. 그것을 반영하도록 편집하겠습니다. –