문제

현재 사용자가 웹 애플리케이션에 액세스하는 영역을 프로그래밍 방식으로 결정해야 하며 이를 결정하는 가장 안전한 방법에 대한 지침이 있는지 궁금합니다.

나는 당신이 결정할 수 있다는 것을 이해합니다 SPUrlZone 에서 SPAlternateUrl 개체이지만 MSDN 문서는 URL별 인덱서가 어떻게 작동하는지에 대해 다소 불분명합니다(놀랍습니다).그것은 말한다:

인덱서를 사용하여 컬렉션에서 단일 항목을 반환합니다.예를 들어 컬렉션이 myUrls라는 변수에 할당된 경우 C#에서는 myUrls[index]를 사용하고 Visual Basic에서는 myUrls(index)를 사용합니다. 여기서 index는 컬렉션에 있는 항목의 인덱스 번호이거나 요청의 수신 URL을 포함하는 문자열.

여기에서 누군가의 로그인 페이지 코드를 찾았습니다. Outlook 통합 사용 시 잘못된 인증 방법

해당 질문은 다음을 사용합니다.

...
SPWebApplication app = SPContext.Current.Site.WebApplication;
SPAlternateUrl u = app.AlternateUrls[Request.Url];
SPUrlZone zone = u.UrlZone;
...

이것이 이를 달성하기 위한 안전하고 일관된 방법입니까?

아니면 이것이 예상대로 작동하지 않게 할 수 있는 외부 조건이 있습니까?

또는 위와 관련하여 문제가 있는 경우 각 속성을 확인하여 어떻게든 해결할 수 있다고 생각했습니다. SPAlternateUrl 통해 반복 SPWebApplication.AlternateUrls 컬렉션을 직접 인덱싱하는 것보다 덜 이상적입니다.

도움이 되었습니까?

해결책

안전하지 않다는 답변은 없었고 코드를 사용했는데 제대로 작동하는 것 같습니다.누군가 이것이 유효하지 않은 조건을 발견하면 답변으로 게시하십시오.그때까지는 이 질문을 닫겠습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 sharepoint.stackexchange
scroll top