내 화면에서 고객 회사에 대한 정보를 보여주는 표가 있습니다. 이제 회사 X의 사용자가 회사 Y 또는 Z의 정보가 아니라 회사 X의 정보 만 볼 수 있도록 데이터 소스를 필터링하려고합니다. aspnet_User의 GUID가 포함 된 테이블 (CustomerUser)을 만들었습니다. , 그리고 회사가 여러 사용자를 생성 할 수 있도록 CustomerID.사용자가 자신의 정보 만 볼 수 있도록 데이터 원본 필터링
여기는 내가 지금까지 가지고 있지만 StackOverflowException을 throw하므로 무한 루프에 걸린 것으로 보입니다.
partial void Customers_Filter(ref Expression<Func<Customer, bool>> filter)
{
//if (!Application.Current.User.HasPermission(Permissions.SecurityAdministration))
//{
//Guid guid = (Guid)Membership.GetUser().ProviderUserKey;
Guid guid = new Guid("1657d378-4b8b-ed4e-f928-bb48fc83bf18");
IEnumerator cusUsers = this.CustomerUsers.GetEnumerator();
CustomerUser current;
CustomerUser found = null;
while (cusUsers.MoveNext())
{
current = (CustomerUser)cusUsers.Current;
if (current.GebruikerID == guid)
{
found = current;
}
};
try
{
if (found != null)
{
filter = e => e.CustomerID == found.Customer1.CustomerID;
}
else
{
filter = e => e.CustomerID == "-1";
}
}
catch (Exception ex)
{
}
//}
}
"where guid = userguid"조건으로보기를 만들려면 사용자가 기본 테이블이 아닌보기에만 액세스 할 수 있도록하십시오. – jarlh
나는 무슨 뜻인지 잘 모르겠다. 나는 아주 오랫동안 Lightswitch에서 일하지 않았다. – joepkerste
어느 쪽도 가지고 있지 않습니다 ... 내 의견은 일반적인 해결책에 가깝습니다. 특정 사례에서 작동하는지 여부조차 모릅니다. – jarlh