from shodan import WebAPI
SHODAN_API_KEY = "MY API KEY"
api = WebAPI(SHODAN_API_KEY)
results = api.exploitdb.search('PHP')
print 'Results found: %s' % results['total']
for exploit in results['matches']:
print '%s:' % (exploit['description'])
Run Code Online (Sandbox Code Playgroud)
如何将搜索限制为仅打印前5个结果?
我正在使用Asp.net web api创建一个api.我有BookController两种方法的控制器:
GetBook(int id) 返回给定id和 GetBook(int userId) 它返回给定用户的所有书籍如果我打电话,localhost/book/3那么调用哪种方法是不明确的.我如何区分这两种方法?
我正在使用新的MVC4 ASP.Net Web API系统.
我在使用WebClient的测试项目中调用我的API.如果我使用GET或POST,它可以正常工作.如果我使用其他任何东西,我会得到Method Not Allowed.我实际上是通过注入以下标题来"伪造"该方法.我这样做是因为我的最终用户也必须这样做,因为一些防火墙的限制.
我通过IIS调用URL(即不是cassini) - 例如http:// localhost/MyAPI/api/Test
wc.Headers.Add("X-HTTP-Method", "PUT");
Run Code Online (Sandbox Code Playgroud)
我尝试在IIS中调整脚本映射,但由于没有扩展,我不知道我要调整的是什么!
有任何想法吗?关心尼克
我正在开发一个.net webAPI项目,我们正在使用依赖注入(我相信StructureMap)为每个会话数据访问对象提供控制器实例.这部分效果很好.
我现在需要做的是使用DataAccessObject提供AuthorizationFilterAttribute的实例.
AuthorizationFilterAttribute通过注释使用.例如:
[ApiKeyAuthorization]
public DataModel ControllerAction(int id) { }
Run Code Online (Sandbox Code Playgroud)
这将确保在控制器运行之前,检查授权.
我需要的是参考我的每个会话共享数据库访问对象创建一个ApiKeyAuthorization对象.
是否有一种简单的方法可以实现这一目标?
据我了解,MVC AsyncController专门介绍了在创建新线程时避免从ASP.NET线程池中窃取线程的问题.新的Web API没有类似的东西AsyncApiController.它的继承/实现签名ApiController也Controller和AsyncController.
问题: Web API是否已经处理了在创建新线程时避免从ASP.NET线程池中窃取线程的问题?我错过了一些新的自动处理这个的东西吗?
以供参考:
在我的WebAPI中,如果检测到错误授权,则使用以下内容:
[HttpPost]
public HttpResponseMessage CustomerQuotationComplete(Guid apiKey, int EnquiryId, int SiteId, bool accepted)
{
if (IsRequestAuthorized())
{
...
}
else
{
var msg = new HttpResponseMessage(HttpStatusCode.Unauthorized) { ReasonPhrase = "Bad Authentication" };
throw new HttpResponseException(msg);
}
}
Run Code Online (Sandbox Code Playgroud)
但是,我实际上收到的是302 Found响应,而不是401 Unauthorized。
那我在做什么错?
我正在构建一个Angular2服务来记录存储在ILog对象中的某些事件,并将它们发送到API以存储在数据库中.
我的日志服务非常简单:
import { Injectable } from '@angular/core';
import { Http } from '@angular/http';
import { EnvironmentModule } from "../environment";
import { ILog } from "./log";
@Injectable()
export class LogService {
constructor(private _http: Http, private environment: EnvironmentModule) { }
postLog(log: ILog): void {
this.json = this.convertToJSON(log);
this._http.post(this.environment.getWebApiUri() + 'api/Log/PostLog/', log, {})
.subscribe(
() => console.log('Success')
); //goes to localhost:3304/WebAPI/Log/PostLog/, returns 404 not found
}
}
Run Code Online (Sandbox Code Playgroud)
它调用一个WebAPI控制器,将数据传递给要处理的服务:
[RoutePrefix("api/Log")]
public class LogController : ApiController
{
private ILogService _LogService;
public LogController() : this(new …Run Code Online (Sandbox Code Playgroud) 我创建了一个ASP.NET-WebApi应用程序,我遇到了这个错误:
找不到类型或命名空间名称HostAuthenticationFilter ...
代码是自动生成的,我认为它必须是一个引用,但无法找到该引用.
using System.Web.Http;
using Microsoft.Owin.Security.OAuth;
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
// Web API configuration and services
// Configure Web API to use only bearer token authentication.
config.Filters.Add(new HostAuthenticationFilter(OAuthDefaults.AuthenticationType));
// Web API routes
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
}
Run Code Online (Sandbox Code Playgroud) 我正在使用asp.net核心Web API。下面是我的简单post函数,它具有一个字符串参数。问题是当我使用[FromBody]时,字符串保持为空。我正在使用PostMan来测试我的服务。我希望原始数据从客户端传递到我的控制器。在Postman中,我选择主体类型RAW,并设置标题Content-Type文本/纯文本。Raw Body包含“ Hello World”字符串。
[HttpPost]
[Route("hosted-services/tokenize-card")]
public IActionResult Test([FromRoute]decimal businessKey,[FromBody] string body)
{
var data = businessKey;
return new JsonResult("Hello World");
}
Run Code Online (Sandbox Code Playgroud) 具有以下签名的Web API方法实际返回了什么?
[HttpPost]
public async Task<IHttpActionResult> Post([FromBody] ReviewViewModel review)
{
using (var context = new BooksContext())
{
var book = await context.Books.FirstOrDefaultAsync(b => b.Id == review.BookId);
if (book == null)
{
return NotFound();
}
var newReview = context.Reviews.Add(new Review
{
BookId = book.Id,
Description = review.Description,
Rating = review.Rating
});
await context.SaveChangesAsync();
return Ok(new ReviewViewModel(newReview));
}
}
Run Code Online (Sandbox Code Playgroud)
方法取自:http://www.developerhandbook.com/c-sharp/create-restful-api-authentication-using-web-api-jwt/
我在考虑它是:
1)在.IsCompleted为真之前,框架不会向调用客户端返回响应,或者2)框架确实返回到客户端,但客户端必须优雅地处理这种情况,或者3)完全没有其他东西.
asp.net-web-api ×10
c# ×5
asp.net-mvc ×3
.net ×1
angular ×1
asp.net ×1
async-await ×1
asynchronous ×1
python ×1
search ×1
string ×1
structuremap ×1