[c#] Asp.Net 웹 서비스 : 403 오류를 반환하고 싶습니다.


3 Answers

MVC를 사용한다면 다음과 같이하십시오.

            return new HttpStatusCodeResult(HttpStatusCode.Forbidden);
Question

C # / asp.net에서 프로그래밍 된 웹 서비스가 있습니다.

[WebService(Namespace = "http://example.com/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ScriptService]
[System.ComponentModel.ToolboxItem(false)]
public class Service: System.Web.Services.WebService
{

    [WebMethod]
    [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
    public Result GetData()
    {
        User user = GetUser();

        if (user.LoggedIn)
        {
            return GetData();
        }
        else
        {
            // raise exception -> return error 403
        }
    }

이 웹 서비스에서 오류 403을 어떻게 반환 할 수 있습니까? 나는 예외를 던질 수있다. 그러나 이것은 그의 오류가 아니라 예외를 보여주는 것이다.

어떤 아이디어?




Context.Response.StatusCode = 403;



금지 된 403은 귀하의 웹 사이트에서 금지 된 컨텐츠에 대한 액세스 결과입니다. 나는 당신이 여기에서 원하는 것이 "User is not logged on"이라는 결과의 일부로 메시지를 반환하는 것이라고 생각합니다.




WebService 생성자에 코드를 삽입하여 모든 메서드를 보호 할 수 있습니다. 이렇게하면 WebMethod가 호출되는 것을 방지 할 수 있습니다.

public Service(): base()
{
    if (!GetUser().LoggedIn)
    {
        Context.Response.StatusCode = (int)System.Net.HttpStatusCode.Forbidden;
        Context.Response.End();
    }
}



Related