मेरे पास एक वर्ग (DPCal_EventMove) का एक तरीका है जिसे मैं भूमिकाओं का उपयोग करने के लिए उपयोग सीमित करना चाहता हूं। मेरे पास ग्लोबल.एएसएक्स सीएस त्रुटि हैंडलर और एक कस्टम IHttpModule त्रुटि हैंडलर है जो अनचाहे अपवाद और सर्वर को पकड़ने के लिए लक्षित है। उन्हें GlobalExceptionHandler.aspx पर ट्रांसफर करें, जो यह जांचने के लिए जांच करता है कि क्या त्रुटियां सुरक्षा अपवाद हैं जो विफल प्रिंसिपल पैरामिशन चेक से उत्पन्न हुई हैं। किसी कारण से, PricipalPermission-decorated विधि के कारण अनचाहे अपवाद मेरे त्रुटि हैंडलरों में से किसी एक के माध्यम से नहीं भेजा जाता है। मेरा सवाल यह है कि: यह अपवाद कहां से जा रहा है और मैं इसे कैसे पकड़ूं और कैसे संभालें? GlobalExceptionHandler.aspx परअनचाहे अपवाद ग्लोबल.एक्सएक्स त्रुटि हैंडलर या कस्टम IHttpModule त्रुटि हैंडलर द्वारा पकड़ा नहीं गया
public class UnhandledExceptionModule : IHttpModule
{
private HttpApplication _context;
private bool _initialized = false;
public void Init(HttpApplication context)
{
_context = context;
_initialized = true;
context.Error += new EventHandler(Application_Error);
}
public UnhandledExceptionModule()
{
_initialized = false;
}
public void Dispose()
{
if (_initialized)
_context.Dispose();
}
public void Application_Error(object sender, EventArgs e)
{
if (_initialized)
_context.Server.Transfer("~/GlobalExceptionHandler.aspx?ReturnUrl=" + _context.Request.Path);
}
}
Page_Load पर पहुंच गया कभी नहीं किया गया है:
public class Global : System.Web.HttpApplication
{
protected void Application_Error(object sender, EventArgs e)
{
Server.Transfer("~/GlobalExceptionHandler.aspx?ReturnUrl=" + Request.Path);
}
}
नीचे अपने कस्टम IHttpModule हैंडलर है:
public partial class DayView : Page
{
protected void Page_Load(object sender, EventArgs e)
{
// Do some stuff
}
[PrincipalPermission(SecurityAction.Demand, Role = "Investigator")]
[PrincipalPermission(SecurityAction.Demand, Role = "Administrator")]
protected void DPCal_EventMove(object sender, DayPilot.Web.Ui.Events.EventMoveEventArgs e)
{
// If no overlap, then save
int eventId = Convert.ToInt32(e.Value);
MembershipUser user = Membership.GetUser();
if (!CommonFunctions.IsSchedulingConflict(eventId, e.NewStart, e.NewEnd) &&
Page.User.HasEditPermission(user, eventId))
{
dbUpdateEvent(eventId, e.NewStart, e.NewEnd);
GetEvents();
DPCal.Update();
}
}
}
नीचे मेरी Global.asax.cs फ़ाइल है।
मुझे लगता है कि इस लिंक में आपके लिए कुछ अच्छी जानकारी हो सकती है: http://stackoverflow.com/questions/2192093/wcf-principalpermission-attribute-exception-loggin –
यदि आपको किसी वेब कॉल के माध्यम से पृष्ठ कॉलबैक के दौरान कोई त्रुटि हो रही है , आपको क्लाइंट पक्ष पर उचित रूप से त्रुटि को संभालना होगा। क्या आप संभवतः अपने कोड का एक (सरलीकृत) संस्करण पोस्ट कर सकते हैं जब (1) 'DPCal_EventMove' और (2)' DPCal_EventMove' 'की परिभाषा को कॉल कर रहा है? –