باستخدام ASP.Net 3.5 SP1 التوجيه مع SharePoint 2007
-
02-07-2019 - |
سؤال
أحاول إعداد بعض عناوين المواقع الصديقة على موقع SharePoint.وأنا أعلم أنني يمكن أن تفعل ASP.Net 2.0 ودية عناوين المواقع باستخدام RewritePath, ولكن كنت أتساءل إذا كان من الممكن الاستفادة من النظام.ويب.التوجيه الذي يأتي مع ASP.NET 3.5 المزود بحزمة الخدمة SP1.
أعتقد أنني عرفت كيف أحصل على جدول التوجيه تحميلها ، ولكن ليس واضحا على ما طريقة الاستخدام للحصول على الصحيح IHttpHandler تمر بها.
وذلك بفضل!
المحلول
انتهى بي الأمر مع ما كان ريان:
var route = new Route("blah/{*path}", new MyRouteHandler());
RouteTable.Routes.Add(route);
public class MyRouteHandler : IRouteHandler
{
public IHttpHandler GetHttpHandler(RequestContext requestContext)
{
//rewrite to some know sharepoint path
HttpContext.Current.RewritePath("~/Pages/Default.aspx");
// return some HTTP handler here
return new DefaultHttpHandler();
}}
ويبدو أن العمل على ما يرام بالنسبة لي.
نصائح أخرى
لقد طلب مني أن ننظر إلى هذا كجزء من نقطة مشاركة عملية التقييم.
ما أفهمه هو أن أوري قالب هو في الأساس اسم المضيف تليها متكررة بنية المجلد.
هذا هو أكثر تعقيدا من نقطة مشاركة اقتطاع uri في 255 حرفا.حتى إذا كان لديك لا سيما العميق أو مطول بنية المجلد الخاص بك ثم uri يمكن أن تصبح غير صالحة.
كنت أفكر أساسا prettifying / التنظيف uri من خلال اتباع الإنسان للقراءة الاتفاقية وتحويلها إلى نقطة مشاركة الاتفاقية.أنا.هـ:
http://myhostname.com/docs/human-resources/case-files/2009/reviews/ed-blackburn.docx
يحول إلى حصة هذه النقاط:
http://myhostname.com/human%20resources/case%20files/2009/reviews/ed%20blackburn.docx
أي الإضافية الخدمات المطلوبة يمكن السيطرة عليها من قبل المراقب المالي.
إذا كان أطول من 255 حرفا نوع من tinyurl النهج الأولي الاقتراح.
ينبغي أن يكون سهلا كما في أدناه.
var route = new Route("blah/{*path}", new MyRouteHandler());
RouteTable.Routes.Add(route);
public class MyRouteHandler : IRouteHandler
{
public IHttpHandler GetHttpHandler(RequestContext requestContext)
{
// return some HTTP handler here
}
}
ثم سجل النظام.ويب.التوجيه.UrlRoutingModule تحت HTTP وحدات في شبكة الإنترنت.التكوين و يجب أن تكون على ما يرام.
<add name="Routing" type="System.Web.Routing.UrlRoutingModule, System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>