- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一堆与 REST 和 SOAP 一起使用的 WCF 服务。我创建了一个 WCF 属性,它检查当前的 httpcontext 是否存在,如果存在则使用 cookie 身份验证,其他方式使用自定义 WCF 身份验证。
我的属性如下所示:
Public Class AuthRequired
Inherits Attribute
Implements IOperationBehavior, IParameterInspector
Public Sub AddBindingParameters(operationDescription As OperationDescription, bindingParameters As Channels.BindingParameterCollection) Implements IOperationBehavior.AddBindingParameters
End Sub
Public Sub ApplyClientBehavior(operationDescription As OperationDescription, clientOperation As ClientOperation) Implements IOperationBehavior.ApplyClientBehavior
End Sub
Public Sub ApplyDispatchBehavior(operationDescription As OperationDescription, dispatchOperation As DispatchOperation) Implements IOperationBehavior.ApplyDispatchBehavior
dispatchOperation.ParameterInspectors.Add(Me)
End Sub
Public Sub Validate(operationDescription As OperationDescription) Implements IOperationBehavior.Validate
End Sub
Public Sub AfterCall(operationName As String, outputs() As Object, returnValue As Object, correlationState As Object) Implements IParameterInspector.AfterCall
End Sub
Public Function BeforeCall(operationName As String, inputs() As Object) As Object Implements IParameterInspector.BeforeCall
' IDS is the custom authentication service.
If IDS.Usuario Is Nothing Then
If HttpContext.Current Is Nothing Then
Throw New SecurityException("Las credenciales no son válidas para esta operación o no fueron provistas.")
Else
Throw New WebFaultException(Of String)("ACCESO DENEGADO. REVISE SUS CREDENCIALES.", Net.HttpStatusCode.Forbidden)
End If
End If
End Function
End Class
1 Câu trả lời
您不能将构造函数注入(inject)到属性中,因为控制属性创建的是 CLR;不是 DI 库。尽管您可以在创建属性后初始化/构建属性并使用属性注入(inject)注入(inject)依赖项,但这非常危险,原因如下:
public class AuthRequiredAttribute : Attribute, IOperationBehavior
{
public object BeforeCall(string operationName, object[] inputs) {
var checker = Global.Container.GetInstance();
checker.Check();
}
}
// Attribute's logic abstracted to a new service. This service can be
// registered, verified, diagnosed, and tested.
public class AuthorizationChecker : IAuthorizationChecker
{
private readonly IDS authenticationService;
public AuthorizationChecker(IDS authenticationService) {
this.authenticationService = authenticationService;
}
public void Check() {
if (this.authenticationService.Usuario == null) {
if (HttpContext.Current == null) {
throw new SecurityException();
} khác {
throw new WebFaultException();
}
}
}
}
这要求您以您的属性可以解析它们所需的服务的方式公开容器。这样做的好处是它很容易实现,很干净。缺点是您必须退回到
Service Locator anti-pattern要使其正常工作,您必须确保您的服务已注册,因为容器不会对此发出警告,因此这将在运行时失败,而不是在调用
container.Verify()
的集成测试内部的应用程序启动期间失败.
关于wcf - 如何使用简单注入(inject)器将依赖项注入(inject) WCF 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29305794/
Tôi đã đọc một trang wikipedia về gobject và nó nói rằng, Chỉ phụ thuộc vào GLib và libc, GObject là nền tảng của GNOME và
Làm thế nào để đăng ký một thuộc tính phụ thuộc có giá trị được tính toán bằng cách sử dụng giá trị của một thuộc tính phụ thuộc khác? Vì các trình bao bọc thuộc tính .NET bị WPF bỏ qua khi chạy nên bạn không nên đưa logic vào các phương thức get và set. Giải pháp thường là sử dụng Proper
Tôi đã cố gắng thêm sự phụ thuộc của ActionbarSherlock maven vào dự án của tôi thư viện com.actionbarsherlock 4.2.0 trong po của tôi
http://tutorials.jenkov.com/ood/understanding-dependencies.html#whatis nói (tôi nhấn mạnh): Bất cứ khi nào một lớp A sử dụng
Tôi không rõ lắm về tất cả những điều kỳ diệu này. Theo tôi hiểu, các thuộc tính phụ thuộc được kế thừa từ DependencyObject và do đó lưu trữ các giá trị: Trong chính thể hiện nếu một giá trị được gán (trong từ điển cục bộ) hoặc được lấy từ một liên kết đến phần tử cha nếu không có giá trị nào được gán
Tôi vừa cập nhật ứng dụng web MVC chạy trên ASP.NET Framework phiên bản 4.5.2. Tôi đang sử dụng Twilio để gửi tin nhắn SMS: var twilio = new TwilioRe
Tôi vừa phát hiện ra một điều đáng sợ. Có hai phiên bản tọa độ phụ thuộc Spring. Dự án phụ thuộc vào Spring MVC và Spring Flow. Có hai tập hợp phụ thuộc song song. Spring MVC có các phụ thuộc cho các tình huống sau
Tôi đang cố gắng đưa phụ thuộc maven org.jacorb jacorb 2.3.1 Phụ thuộc đã được giải quyết nhưng nó gây ra sự cố với phụ thuộc khác picocontainer: [ERROR
Tôi đang cố gắng đưa phiên bản cụ thể của thư viện vào dự án Haskell của mình. Thư viện này rất phù hợp (cho các phép toán martix), nhưng tôi đặc biệt cần phiên bản 0.4.3 để sửa lỗi trong quá trình thực hiện phép nhân. Vì vậy, stack.yaml của tôi
Có ai biết cách tạo UIPickerView phụ thuộc không. Ví dụ, khi tôi chọn hàng 2 của thành phần một, tiêu đề của thành phần hai có thay đổi không? Tôi đã tìm kiếm trên internet và không có câu trả lời thực sự nào, tôi đã thử sử dụng các câu lệnh if và switch nhưng chúng không hoạt động
Tôi đang viết một dự án để thử nghiệm chấp nhận, vì nhiều lý do mà dự án này phụ thuộc vào một dự án khác được đóng gói dưới dạng WAR. Tôi đã giải nén thành công WAR bằng cách sử dụng maven-dependency-plugin, nhưng không thể đưa dự án của tôi vào WEB-I đã giải nén
Ít nhiều thì tôi xây dựng trang web của mình dựa trên các phiên (đặc biệt là chuyển hướng người dùng, v.v.) và tôi tò mò liệu đây có phải là một hoạt động nguy hiểm hay không. Tỷ lệ phần trăm người dùng tắt tính năng lưu trữ cookie của trình duyệt là bao nhiêu? Tôi sẵn sàng lắng nghe mọi gợi ý :) Cảm ơn vì câu trả lời hay nhất
Bắt đầu tìm hiểu về hợp đồng tương lai Scala và tôi bị mắc kẹt với hợp đồng tương lai phụ thuộc. Chúng ta hãy lấy một ví dụ. Tôi tìm kiếm Place và nhận được Future[Seq[Place]]. Đối với mỗi địa điểm này, tôi tìm kiếm ga tàu điện ngầm gần nhất (dịch vụ trả về
Ít nhiều thì tôi xây dựng trang web của mình dựa trên các phiên (đặc biệt là chuyển hướng người dùng, v.v.) và tôi tò mò liệu đây có phải là một hoạt động nguy hiểm hay không. Tỷ lệ phần trăm người dùng tắt tính năng lưu trữ cookie của trình duyệt là bao nhiêu? Tôi sẵn sàng lắng nghe mọi gợi ý :) Cảm ơn vì câu trả lời hay nhất
Tôi có một tệp nhị phân yêu cầu một số tệp *.so để thực thi. Bây giờ khi tôi thử thực hiện nó trên một số máy cũ thì nó báo /lib/libc.so.6: phiên bản `GLIBC_2.4' không tìm thấy Làm thế nào tôi có thể thay đổi
Tôi đã thử sử dụng Dygraph để biểu diễn đồ thị, tôi tìm thấy mã trong https://github.com/danvk/dygraphs, nhưng nó có quá nhiều tệp phụ thuộc khiến tôi thấy khó chịu. Có một tập tin duy nhất chứa tất cả các thông tin cần thiết không?
Tôi đang làm việc trên một tệp javascript a) khai báo một đối tượng có hàm và b) gọi hàm init của đối tượng đó với hàm băm mà nó mong đợi được khai báo bên ngoài. Thông số kỹ thuật Jasmine của tôi cho biết nó không thể tìm thấy băm vì nó
Gần đây tôi đang học Angular và đang tiến triển tốt, nhưng vẫn còn một số điều về dependency injection mà tôi vẫn chưa hiểu rõ. Có lý do nào để tuyên bố phần còn lại của đơn đăng ký của tôi (Dịch vụ, Kiểm soát
Hãy xem xét một bảng có tên là foo với một cột id (PRIMARY & AUTO_INCREMENT). Tôi đang chèn một hàng vào bảng này và thử thách bắt đầu tại thời điểm này. $db->query("CHÈN VÀO `foo`
Tôi đang sử dụng plugin jQuery thả xuống dạng thác đổ. (https://github.com/dnasir/jquery-cascading-dropdown) Tôi có hai menu thả xuống. Khách hàng và Trang web. Theo bạn
Tôi là một lập trình viên xuất sắc, rất giỏi!