두 개의 ASP.NET 웹 응용 프로그램이 있고 하나의 응용 프로그램이 사용자를 인증하지만 사용자를 인증하지 않습니까?
예를 들어 ....
웹 서비스!
인증 응용 프로그램에서 새 웹 서비스를 만들고 (.asmx 확장자 임) 사용자와 암호 등을 취하는 단일 메서드를 추가하고 인증 정보를 반환합니다.
그런 다음 두 번째 앱에서 WSDL을 가져오고 첫 번째 앱을 메소드와 같이 호출합니다. 코드를 단순화하고 문제를 해결할 것입니다.
예제 :
AuthenticateUserService.asmx가 인증 응용 프로그램에 간다
이 일단
using System;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class AuthenticateUserService : System.Web.Services.WebService
{
[WebMethod]
public bool AuthenticateUser(string username, string passhash)
{
// Fake authentication for the example
return (username == "jon" && passhash == "SomeHashedValueOfFoobar");
}
}
가 설치, 기본 응용 프로그램을 불, 오른쪽 프로젝트를 클릭하고 클릭합니다 "추가 웹 참조" .
인증 응용 프로그램에 asmx에 대한 url을 입력하면 Visual Studio가이를 발견하고 프록시 클래스를 만듭니다.
protected void Page_Load(object sender, EventArgs e)
{
// Now we can easily authenticate user in our code
AuthenticateUserService authenticationProxy =
new AuthenticateUserService();
bool isUserAuthenticated =
authenticationProxy.AuthenticateUser("jon", SomeHashMethod("foobar"));
}
그래서,이 정말 무엇을합니까 : 그 작업이 완료되면 우리의 주요 응용 프로그램에서 로컬 방법처럼
, 우리는 그 메소드를 호출 할 수 있습니다?
인증 프로세스에서 클라이언트를 제거합니다.
현재 공정 :
- 클라이언트는
- APPA는 AppB에 클라이언트를 리디렉션 APPA에 자격 증명을 입력 자격 증명이 일치하는 경우 AppB 다시 APPA에 클라이언트를 리디렉션
- .
AppA와 AppB 간의 서버 측 SOAP 호출로 대체되었습니다. 지금은이 같은 :
- 클라이언트들이
- APPA는 클라이언트에 적절한 컨텐츠를 제공 좋은 경우
- APPA는 AppB을 요청 APPA에 자격 증명을 입력합니다.
문제는 실제 인증이 WeppApp1에서 소비되는 완전한 다른 서비스에서 수행된다는 것입니다. 따라서 저는 실제로 임시 직원을 사용할 수 없습니다. GUID는 다른 시스템 (내 통제하에 있지 않음) – MADMap